• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSのDB共用ができない(待ちになる))

ノートPC間のデータ共有において待ち状態が発生する問題について

このQ&Aのポイント
  • 2台のノートPCをLogitecのSWハブを介して接続し、データの共有を試みています。しかし、片方のPCでデータを表示させている場合、もう一方のPCで同じデータを表示しようとすると待ち状態になってしまいます。
  • データMDBの置き場所を変えて試すと、待ち状態が反対になりました。また、クロス接続の方法も考えましたが、将来的には5台程度で運用したいため、SWハブでの接続を選択しました。
  • 過去のログを参考にして試してみましたが、問題は解決しませんでした。アドバイスをいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

待ち状態になるのが普通です。排他ロックがかかっているのです。 そもそも一つのテーブルを同時に編集モードで開くことは出来ないのは理屈から言ってわかりますよね。テーブルを開くという事は編集しますという事なのです。 この場合編集目的のデーターだけをクエリーでセレクトするか、参照だけの場合はフォームから読み取り専用モードで開きます。もし編集したいデーターがあればそこからクエリーでセレクトします。 でもVBAで書いてしまった方が分かり易いです。書き込みは本来ExecuteでSQLを投げます。VBAの場合はスナップショットとダイナミックモードになります。 つまりAccessは個人使用のものであり共有仕様は「出来ない」と言う事です。これはSQLServerでもOracleでも大方同じで、排他制御は自動でやってくれるものではありません。人間が命令するものなのです。 データーが多い場合たまたま最初を編集している人と、最後を編集している人がぶつからない事もありますが、それはたまたまです。それを続けているといずれはDBが破損します。 データーベースと言うのは計画をし、設計をし時間を掛けて構築するものなのです。Excelのように使う事はあきらめたほうがよいと思います。 ちなみにロックには行、ページ、テーブルという段階的ロックがあり、大きなDBは行をサポートするのでぶつかる事は少ないです。でも少ないだけでぶつかるときはぶつかります。

azmn_aries
質問者

お礼

早速の回答ありがとうございます。手動でテーブルを開くと常に排他モードなんですね。良く判りました。早速VBAの参照プログラムを作ります。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A