Microsoft Access では、ユーザーと別のユーザーがデータベース内の同じレコードに同時に書き込もうとするときに、[書き込み 競合 ] ダイアログ ボックスが表示されます。 既定のロック戦略 (ペシミスティック ロックと呼ばれます) は、レコードへの書き込みを試行する最初のユーザーにロックの所有権を付与します。 他のユーザーはレコードを保存する前に保存できますが、ロックを所有しているために何が起こるかを決定できます。 書き込み競合が発生メイン理由は 2 つあります。
-
同じ Access データベースで同時に 2 つのオブジェクト (テーブルやフォームなど) を開き、両方のオブジェクトが同じレコードに書き込もうとしています。 この場合、相手はあなたです。 レコードへの書き込みを試みる最初のオブジェクトは、ロックを所有します。
-
Access データベースが共有され、別のユーザーが同じレコードに書き込もうとしています。 この場合、レコードに書き込もうとする最初のユーザーがロックを所有します。
競合を解決する
Access には、次の 3 つの選択肢があります。
-
レコードの保存 他のユーザーが行った変更を上書きできます。 最初にレコードを編集したため、ロックを所有しています。 他のユーザーは変更を失う可能性が最も高いです。 可能な場合は、このオプションを使用しないでください。
-
クリップボードにコピー レコード全体が、行った変更と共にクリップボードにコピーされ、他のユーザーによって行われた変更がレコードに表示されます。 変更を受け入れるか、クリップボードに保存された内容に基づいて変更を上書きすることができます。
-
変更を削除する ロックを所有していても、他のユーザーに保存された変更を保持させます。
詳細情報
この動作はプログラムで制御できます。 詳細については、「 RecordLocks プロパティ 」および「 Access でフォームを閉じると予期しない書き込み競合エラーが発生する」を参照してください。