問題を引き起こす次のセットアップがあります。
- msaccess 2003 (11.6566.8221) SP2 の MDB または MDE フロントエンド
-- サーバー共有フォルダーまたは C:\Development から実行 - Microsoft SQL Server Express Edition with Advanced Services (9.00.5000.00)
- オペレーティング システム (「サーバー」): Microsoft Windows NT 5.1 (2600) = Windows XP
ファイル DSN から派生した同じリンク テーブル接続を使用して接続している開発マシン (「サーバー」と同じ) で MDB と MDE を実行してデバッグします。
MDB または MDE を別のクライアント (病院内の混合クライアント環境) に渡して実行すると、ハングして、テーブルへの最初の呼び出しで odbc 接続エラーが発生します (これは起動コードの DLookup です)。
コードを停止し、データベース ウィンドウを再表示し、USB ドライブで持ち歩いているファイル DSN を使用してすべてのテーブルを再リンクします (開発マシンと同じ)。
- 注: クライアントで新しい FileDNS として再作成するファイル DSN の同じ設定 = 成功)
- すべてのテーブルを参照する ([アクセス テーブル] タブからテーブル ビューで開く) = 機能する
- すべてのフォームを再度実行する = 動作する
- システムは正常に動作します
** 今 **
MDB を再度保存し、MDB を閉じ (ACCESS を開いたままにする)、MDB を再度開きます - すべて正常に動作します
Access を完全に閉じて (もう実行されていません)、Access を開き、mdb を開きます -- エラーが発生し、リンクされたテーブルを表示しようとすると、同じエラーが発生します
考えられるヒント: エラー メッセージは通常とは異なります。
Runtime Error '3151'
ODBC--connection to 'SqlServerSAH0048645' failed
以下は機能します-「UserValidate」フォームを開くように設定されたスタートアップオプションでファイルを開きます-OnLoadイベントでResetDefaultconnectionsを呼び出します(私が見つけたDNSlessコードを使用して)-すべてのTableDefs.connection文字列を次のようにリセットします:
strConnectionString = "ODBC;DRIVER={SQLServer} ;Description=RAHCC_DB; SERVER=tcp:10.19.54.64,1500; UID=RAHCC_User; PWD=XXXXXXx; APP=MSACCESS; WSID=SAH0034510; DATABASE=RAHCC_DB"
- リンクされたテーブルごとに新しい tabledef レコードを削除してから追加する
- フォームを開き続けます ---> すべてが機能しているようです。
しかし..アクセスを閉じて再度開くとすぐに->再び機能しません。
注 - 私は自分が持っているものに制限されています (Sql Server はすべてのクライアントにインストールされていますか) - Sql Server ドライバーを使用した接続に制限されています - Sql Server 認証を使用しています
乾杯、
ジョンHD