Access 2010 FE と SQL Server 2005 BE を実行しています。DSNless 接続を使用して、SQL Server へのパススルー クエリを正常に実行できます。
テスト段階では、パススルー クエリを再実行できるように、データベースを復元して元のレコードに戻す必要がある場合があります。私が見つけたのは、パススルー クエリを実行すると、SQL Server にアクティブな接続が作成されることです。MANAGEMENT | の下に SQL Server 管理コンソール経由の接続が表示されます。SQL Server ログ | アクティビティ モニター、ビュー プロセスを選択します。そこで、パススルー クエリを実行すると、どのプロセス ID が使用され、誰がそれを使用しているかを確認できます。
データベースを復元する唯一の方法は、アクティブな接続などのプロセスを強制終了することです
データベースを復元してパススルー クエリを再実行すると、ODBC -- Call Failed メッセージ ボックスが表示されます。クエリ定義を更新する手順を実行しようとしましたが、役に立ちませんでした。これらのオブジェクトをクリックすると、ODBC -- Call Failed メッセージ ボックスが表示されます。
この問題を修正する方法には 2 つのオプションがありますが、どちらの場合もユーザー フレンドリーではありません。
- Access アプリケーションを再起動する
- パス スルー クエリを再実行するには、約 5 ~ 10 分待ちます。
ODBC エラーをトラップする関数を作成したところ、次のように表示されます。
ODBC エラー番号: 0
エラーの説明: [Microsoft][ODBC SQL Server Driver]通信リンク障害
ODBC エラー番号: 3146
エラーの説明: ODBC -- 呼び出しに失敗しました。
そのため、Access アプリケーションが現在 ODBC 経由で接続されているときに、何らかの理由で SQL サーバーを再起動するか、SQL サーバー上のプロセス (アクティブな接続) を強制終了する必要がある場合、ODBC 経由で作成されたオブジェクトは、2 つの回避策を実行するまで正しく動作しません。上記のソリューション。
誰でも解決策についてアドバイスをもらえますか? 洞察に感謝します。