
Windows XP、Windows 2000、または Windows NT 4.0 上に保存されている Access データベース ファイル (mdb) にリンクテーブルを設定して複数のユーザーでアクセスすると、2 人目以降のユーザーのパフォーマンスが落ちる場合があります。
Access でリンクテーブルにアクセスする際、リンク先のデータベースの情報を取得するために、開く、閉じるの動作が数回おこなわれます。データベースを閉じるとき、 Access はロック情報ファイル (ldb) を削除しようとしますが、リンク先のデータベースが別のユーザーによって開かれている場合、ロック情報ファイル (ldb) は別のユーザーによって使用されているために削除することができません。その場合、オペレーティング システムはファイルが削除できなかったことを Access に通知します。しかし、リンク先のオペレーティング システムとして、Windows XP、Windows 2000、または Windows NT 4.0 を使用している場合、オペレーティング システムから Access に通知するまでに時間がかかるため、パフォーマンスに影響します。
回避策
この現象を回避するには、Autoexec マクロを使用します。
1. リンク先のデータベース (mdb) にて空のダミーの ”test" テーブルを作成します。
2. リンク元のデータベース (mdb) にて "test" テーブルにリンクを設定します。
3. リンクした"test" テーブルを基にダミーの ”test" フォームを作成します。
4. 以下の AutoExec マクロを作成します。
アクション
フォームを開く
アクションの引数
フォーム名: test
ビュー: フォーム ビュー
データ モード: 読み取り専用
ウインドウ モード: 非表示
コメントは投稿者の責任においてなされるものであり、サイト管理者は責任を負いません。
はじめまして ウルトラマンと申します。
まさに同様の現象が発生していて、ネット検索でようやくこちらまでたどり着きました。
「回避策」はとりあえず実装できましたが、検証環境が無く困っているところです。
本題ですが、AutoexecでダミーのTESTフォームを開くことで、何故本現象が回避できるのですか?
素人で申し訳ありません。できれば理由を教えてください
実際に試してみましたが、遅いままです。<br>
この回避策は何の意味もありませんでした。