"RecordLocks/レコードロック" プロパティ

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

適用対象

Form オブジェクト
Report オブジェクト

RecordLocks プロパティを使用すると、レコードのロック方法と 2 人のユーザーが同じレコードを同時に編集しようとしたときの動作を決定できます。 読み取り/書き込み。

expression.RecordLocks

必須。 [適用先] リスト内のいずれかのオブジェクトを返す式。

解説

レコードを編集すると、完了する前に他のユーザーがレコードを変更できないように、そのレコードを自動的にロックできます。

  • フォーム。 マルチユーザー データベース内のデータが更新されるときに、基になるテーブルまたはクエリ内のレコードをロックする方法を指定します。
  • レポート。 レポートがプレビューまたは印刷されている間、基礎となるテーブルまたはクエリのレコードをロックするかどうかを指定します。
  • クエリ。 クエリの実行中に、クエリ内のレコード (通常はマルチユーザー データベース内のアクション クエリ) をロックするかどうかを指定します。

RecordLocks プロパティは、Microsoft Access データベース (.mdb または .accdb) のフォーム、レポート、クエリにのみ適用されます。

RecordLocks プロパティでは、次の設定が使用されます。

設定 Visual Basic 説明
ロックなし 0 (既定) フォームの場合、2 人以上のユーザーが同じレコードを同時に編集できます。 これは "楽観的" ロックとも呼ばれています。 2 人のユーザーが同じレコードを変更した上で保存しようとすると、Access は 2 人目のユーザーにメッセージを表示します。 このユーザーはレコードを破棄するか、クリップボードにコピーするか、他のユーザーが行った変更を採用できます。 この設定は一般的に読み取り専用フォームまたはシングルユーザー データベースで使用されます。 複数のユーザーが同じレコードを同時に変更できるように、マルチユーザー データベースで使用されることもあります。
レポートの場合、レポートがプレビューまたは印刷されている間、レコードはロックされません。
クエリの場合、クエリの実行中、レコードはロックされません。
すべてのレコード 1 フォームがフォーム ビューまたはデータシート ビューで開かれている間、レポートがプレビューまたは印刷されている間、またはクエリの実行中、それらの基となるテーブルまたはクエリのすべてのレコードがロックされます。 ユーザーはレコードを読み取ることができますが、フォームが閉じられるか、レポートの印刷が終わるか、クエリの実行が終わるまで誰もレコードを編集、追加、削除できません。
編集済みのレコード 2 (フォームとクエリのみ) ユーザーがレコード内のフィールドの編集を始めるとレコードのページがロックされ、ユーザーが別のレコードに移るまでロック状態が維持されます。 結果的に、レコードを編集できるのは一度に 1 ユーザーに限られます。 これは "排他的" ロックとも呼ばれています。

このプロパティは、フォームのプロパティ シート、マクロ、またはVisual Basic for Applications (VBA) コードを使用して設定できます。

開いているフォームまたはレポートの RecordLocks プロパティを変更すると、レコードセットが自動的に再作成されます。

基礎となるテーブルまたはクエリを使用する、あるいはデータのすべての変更を行うユーザーが 1 人だけの場合、フォームにロックなし設定を利用できます。

マルチユーザー データベースの場合、楽観的ロックを使用し、フォームの同じレコードを編集しようとするユーザーに警告する場合、ロックなし設定を利用できます。 2 人以上のユーザーがデータを同時に編集することを禁止する場合、編集済みレコード設定を利用できます。

自分がレポートのプレビューまたは印刷、あるいは追加、削除、表作成、更新クエリの実行を始めたらデータが変更されないようにするとき、すべてのレコード設定を利用できます。

フォーム ビューまたはデータシート ビューでは、ロックされているレコードのレコード セレクターにロック済みと表示されます。

ヒント

フォームの既定の RecordLocks プロパティ設定を変更するには、 Microsoft Office ボタンOffice ボタン の画像 をクリックし、[ アクセス オプション] をクリックします。 [Access のオプション] ダイアログ ボックスで [詳細設計] をクリックし、[既定のレコード ロック] でオプションを選択します。

ODBC (Open Database Connectivity) データベースからのフォーム、レポート、クエリのデータは、RecordLocks プロパティ設定に関係なく、ロックなし設定が選択されたように扱われます。

次の例では、"Employees" フォームの RecordLocks プロパティが編集済みレコードに設定されます (ユーザーがレコード内のフィールドの編集を始めるとレコードのページがロックされ、ユーザーが別のレコードに移るまでロック状態が維持されます)。

Forms("Employees").RecordLocks = 2