レコードのロック方法と、2 人のユーザーが同じレコードを同時に編集しようとした場合の動作を決定するには、 RecordLocks プロパティを使用します 。 値の取得と設定が可能です。
構文
式。RecordLocks
expressionForm オブジェクトを表す変数です。
注釈
レコードを編集する場合、編集が完了する前に他のユーザーがそのレコードを変更できないように、そのレコードは自動的にロックされます。 対象がフォームの場合、" RecordLocks /レコードロック" プロパティは、マルチユーザー データベースのデータが更新されるときに、フォームの基になるテーブルまたはクエリのレコードをどのようにロックするかを示します。
" RecordLocks /レコードロック" プロパティは、Microsoft Office Access データベース (.mdb) のフォーム、レポート、またはクエリにのみ適用されます。
"RecordLocks/レコードロック" プロパティの設定値は次のとおりです。
| Setting | Visual Basic | 説明 |
|---|---|---|
| No Locks/しない | 0 | 対象がフォームの場合、複数のユーザーが同時に同じレコードを編集できます。 これは "共有的" ロック状態とも呼ばれます。 2 人のユーザーが同じレコードに変更内容を保存しようとすると、2 番目にレコードを保存しようとしたユーザーにメッセージが表示されます。 このユーザーはレコードを破棄するか、レコードをクリップボードにコピーするか、または他のユーザーによる変更内容に上書きできます。 この設定値は通常、読み取り専用フォームまたはシングル ユーザー データベースで使用されます。 また、マルチユーザー データベースでも、複数のユーザーが同じレコードに同時に変更を加えることができるようにするためにも使用されます。 |
| All Records/すべてのレコード | 1 | フォームがフォーム ビューまたはデータシート ビューで開かれている間、基になるテーブルまたはクエリ内のすべてのレコードはロックされます。 ユーザーはレコードを読み取ることはできますが、フォームが閉じられるまで、レコードを編集、追加、または削除することはできません。 |
| Edited Record/編集済みレコード | 2 | (フォームとクエリのみ)レコードのページは、ユーザーがレコード内のフィールドの編集を開始するとすぐにロックされ、ユーザーが別のレコードに移動するまでロックされたままになります。 その結果、レコードは一度に 1 人のユーザーしか編集できません。 これは "悲観" ロックとも呼ばれます。 |
注:
[!メモ] 開いているフォームまたはレポートの " RecordLocks /レコードロック" プロパティを変更すると、自動的にレコードセットが再作成されます。
基になるテーブルまたはクエリを 1 人だけが使用するユーザーや、データに対するすべての変更を行った場合は、フォームの [ロックなし] 設定を使用します。
マルチユーザー データベースで、共有的ロック状態を使用し、ユーザーがフォームの同じレコードを編集しようとしたときに警告を出すようにするには、[No Locks/しない] に設定します。 2 人以上のユーザーが同時にデータを編集できないようにする場合は、[編集済みレコード] 設定を使用します。
フォーム ビューまたはデータシート ビューでは、ロックされている各レコードのレコード セレクターにロック インジケーターが表示されます。
フォームの既定の RecordLocks プロパティの設定を変更するには、[ツール] メニューの [オプション] を選択し、[オプション] ダイアログ ボックスの [詳細設定] タブを選択して、[既定のレコードのロック] で目的のオプションを選択します。
ODBC データベースのフォーム、レポート、またはクエリ内のデータは、"RecordLocks/レコードロック" プロパティの設定値にかかわらず、[No Locks/しない] に設定されている状態になります。
例
次の例では、"従業員" フォームの RecordLocks プロパティを "編集済みレコード" に設定します (レコードのページは、ユーザーがレコード内のいずれかのフィールドの編集を開始するとすぐにロックされ、ユーザーが別のレコードに移動するまでロックされたままになります)。
Forms("Employees").RecordLocks = 2
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。