適用対象
| 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 ボタン
をクリックし、[ アクセス オプション] をクリックします。 [Access のオプション] ダイアログ ボックスで [詳細設計] をクリックし、[既定のレコード ロック] でオプションを選択します。
ODBC (Open Database Connectivity) データベースからのフォーム、レポート、クエリのデータは、RecordLocks プロパティ設定に関係なく、ロックなし設定が選択されたように扱われます。
例
次の例では、"Employees" フォームの RecordLocks プロパティが編集済みレコードに設定されます (ユーザーがレコード内のフィールドの編集を始めるとレコードのページがロックされ、ユーザーが別のレコードに移るまでロック状態が維持されます)。
Forms("Employees").RecordLocks = 2