【问题标题】:Notifying Excel 2007 about changes in a database in SQL Server 2008 R2通知 Excel 2007 有关 SQL Server 2008 R2 中数据库中的更改
【发布时间】:2011-07-03 22:24:10
【问题描述】:

我在使用 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 秒运行一次这些检查并不是一个解决方案。

【问题讨论】:

    标签: sql-server-2008 excel ado sql-server-native-client vba


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-18
      • 2012-02-18
      • 2014-07-11
      • 2014-11-11
      • 2013-07-28
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      相关资源
      最近更新 更多