1

Excel2007をSQLServer2008R2と一緒に使用するのに多くの問題があります。

2つ以上のブック間でデータを共有する必要があり、リモートサーバー上のSQLデータベース(SQL Server 2008 R2に配置)を介してこれを実行したいと考えています。データアクセスプロバイダーとして、ADOおよびSQLServerネイティブクライアントOLEDBプロバイダーでVBAを使用しています。1つのクライアントがExcelからデータベースにデータをアップロードしたときに、SQL Server 2008 R2に、データベースが変更されたことを示すシグナルを他のブックに送信させたいのですが、私の質問はそれをどのように行うかです。そして、VBAでそれを行うことはできますか?

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

4

1 に答える 1

0

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

Excel から SQL サーバーへのタイマー呼び出しを開始することは、SQL サーバーにクライアント ブックに注意を向けさせるよりもはるかに簡単で、費用もかかりません。

于 2011-12-07T14:40:27.113 に答える