2011-07-03 14 views
1

Excel 2007とSQL Server 2008 R2の併用には多くの問題があります。Excel 2007にSQL Server 2008 R2のデータベースの変更について通知する

2つ以上のブック間でデータを共有する必要があります。リモートサーバー上のSQLデータベース(SQL Server 2008 R2に配置されている)を使用してこの作業を行いたいとします。私は、データアクセスプロバイダーとしてADOとSQL ServerネイティブクライアントOLE DBプロバイダーでVBAを使用します。 1つのクライアントがExcelからデータベースにデータをアップロードしたとき、SQL Server 2008 R2がデータベースが変更されたということを他のワークブックに通知したいのですが、どうすればいいですか?そして私はVBAでそれをすることができますか?

SQL Server 2008 R2でイベント通知を使用する方法を理解しましたが、30分ごとにService Brokerキューのメッセージをクエリするマクロを実行せずにExcelに通知する方法も問題です。 Excel 2007はマルチスレッドをサポートしていませんが、他のマクロを実行するためにExcelが必要なので、30秒ごとにこれらのチェックを実行するソリューションではありません。

答えて

0

これを実行する方法は、実際Excel経由です。ユーザ/イベントで呼び出されたVBAはシングルスレッドですが、Application.OnTimeは独立したスレッドで実行されます。ワークブックが閉じられてもそれを実行したい場合は、クライアント側のサービスの使用を検討してください。

ExcelからSQLサーバーへのタイマーコールを切断することは、クライアントワークブックに注意を払うためにSQL Serverを圧縮するよりはるかに簡単でコストがかかりません。

関連する問題