適用対象
Form オブジェクト |
---|
Report オブジェクト |
RecordLocks プロパティを使用すると、レコードのロック方法と 2 人のユーザーが同じレコードを同時に編集しようとしたときの動作を決定できます。 読み取り/書き込み。
expression.RecordLocks
expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。
解説
レコードを編集すると、完了する前に他のユーザーがレコードを変更できないように、そのレコードを自動的にロックできます。
-
フォーム。 マルチユーザー データベースのデータが更新されたとき、基礎となるテーブルまたはクエリのレコードがロック済みされる方法を指定します。
-
レポート。 レポートがプレビューまたは印刷されている間、基礎となるテーブルまたはクエリのレコードをロックするかどうかを指定します。
-
クエリ。 クエリが実行されている間、クエリ (一般的に、マルチユーザー データベースのアクション クエリ) のレコードをロックするかどうかを指定します。
注: 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 ボタン をクリックし、[Access のオプション] をクリックします。 [Access のオプション] ダイアログ ボックスで [詳細設計] をクリックし、[既定のレコード ロック] でオプションを選択します。
ODBC (Open Database Connectivity) データベースからのフォーム、レポート、クエリのデータは、RecordLocks プロパティ設定に関係なく、ロックなし設定が選択されたように扱われます。
例
次の例では、"Employees" フォームの RecordLocks プロパティが編集済みレコードに設定されます (ユーザーがレコード内のフィールドの編集を始めるとレコードのページがロックされ、ユーザーが別のレコードに移るまでロック状態が維持されます)。
Forms("Employees").RecordLocks = 2