1

我在使用 Excel 2007 和 SQL Server 2008 R2 时遇到了很多麻烦。

我需要在两个或多个工作簿之间共享数据,并且我想通过远程服务器上的 SQL 数据库(放置在 SQL Server 2008 R2 中)来完成此操作。我将 VBA 与 ADO 和 SQL Server Native Client OLE DB 提供程序一起用作数据访问提供程序。当一个客户端将数据从 Excel 上传到数据库时,我希望 SQL Server 2008 R2 向其他工作簿发出关于数据库已更改的信号,我的问题是如何做到这一点?我可以在 VBA 中做到这一点吗?

我已经想出了如何在 SQL Server 2008 R2 中使用事件通知,但我的问题还是如何通知 Excel,而无需运行每隔 30 秒左右查询 Service Broker 队列中的消息的宏。我知道 Excel 2007 不支持多线程,并且由于我还需要 Excel 来运行其他宏,所以每 30 秒运行一次这些检查并不是解决方案。

4

1 回答 1

0

这样做的方法实际上是通过 Excel。虽然用户/事件调用的 VBA 是单线程的,但Application.OnTime在独立线程中运行。如果您希望即使在工作簿关闭时也能进行,请考虑在客户端使用服务。

启动从 Excel 到 SQL Server 的计时器调用比哄 SQL Server 关注客户端工作簿要简单得多且成本更低。

于 2011-12-07T14:40:27.113 回答