Access のロック ファイル (laccdb と ldb) の概要
- [アーティクル]
-
-
-
- 適用対象:
- Access
または .ldb
ファイルは.laccdb
、Microsoft Access データベース エンジンのマルチユーザー スキームで重要な役割を果たします。
.laccdb
または .ldb
ファイルを使用して、共有データベースでロックされているレコードと、そのユーザーがロックされているレコードを決定します。 ファイルは .laccdb
.accdb データベースで使用され、 .ldb
ファイルは ".mdb" データベースで使用されます。 と の両方の.laccdb
.ldb
ファイルは、一般的にロック ファイルと呼ばれます。
共有用に開かれたデータベースごとに、コンピューターとセキュリティの名前を格納し、 .laccdb
拡張バイト範囲ロックを配置するために、 または .ldb
ファイルが作成されます。 ロック ファイルは、開いたデータベースと常に同じ名前を持ち、開いたデータベースと同じフォルダーに格納されます。 たとえば、C:\users\<username>\documents\
で Northwind.accdb サンプル データベースを (共有用に) 開いた場合は、Northwind.laccdb という名前のファイルが同じドキュメント フォルダーに自動的に作成されます。
最後のユーザーが共有データベースを閉じるたびに、ロック ファイルが削除されます。 唯一の例外は、ユーザーが削除権限を持っていない場合、またはデータベースが壊れているとマークされている場合です。 次に、データベースが破損したとマークされた時点でデータベースを使用したユーザーに関する情報が含まれているため、ロック ファイルは削除されません。
データベースを共有する場合、データベース ファイルは、ユーザーが読み取り、書き込み、作成、および削除の権限を持つフォルダーに格納する必要があります。 ユーザーが異なるファイル特権 (読み取り専用と読み取り/書き込みなど) を持つ必要がある場合でも、データベースを共有しているすべてのユーザーは、フォルダーに対する読み取り、書き込み、および作成のアクセス許可を持っている必要があります。 ただし、フォルダーへの完全なアクセス許可を付与しながら、個々のユーザーの .accdb または .mdb ファイルに読み取り専用のアクセス許可を割り当てること可能もです。
注意
ユーザーが排他的アクセス権でデータベースを開いた場合 ([開く] ボタンの右側にある矢印、[排他を開く] の順にクリック)、レコードのロックは使用されません。 そのため、Microsoft Access でロック ファイルが開くことも作成されることもありません。 データベースが常に排他的使用のために開いている場合、ユーザーはフォルダーに対する読み取りおよび書き込み権限のみを持っている必要があります。
共有データベースを開くユーザーごとに、Access データベース エンジンはデータベースの または .ldb
ファイルに.laccdb
エントリを書き込みます。 各エントリのサイズは 64 バイトです。 最初の 32 バイトには、コンピューター名 (JohnDoe など) が含まれます。 2 つ目の 32 バイトには、セキュリティ名 (Admin など) が含まれます。 Access データベース エンジンがサポートする同時ユーザーの最大数は 255 です。 したがって、ロック ファイルのサイズが 16 キロバイトを超えることはありません。
ユーザーが共有データベースを閉じると、ユーザーのエントリはロック ファイルから削除されません。 ただし、別のユーザーがデータベースを開くと、ユーザーのエントリが上書きされる可能性があります。 つまり、ロック ファイルを単独で使用して、現在データベースを使用しているユーザーを特定することはできません。
Access データベース エンジンは、ロック ファイル情報を使用して、ユーザーがロックしたページまたはレコードに他のユーザーがデータを書き込むのを防ぎ、他のページやレコードがロックされているユーザーを特定します。 Access データベース エンジンが別のユーザーとのロック競合を検出すると、ロック ファイルを読み取り、ファイルまたはレコードがロックされているユーザーのコンピューターとセキュリティ名を取得します。
ほとんどのロック競合状況では、レコードを保存したり、クリップボードにコピーしたり、行った変更を削除したりできる一般的な「書き込み競合」メッセージが表示されます。 このとき、次のエラー メッセージが表示される場合があります。
テーブル <テーブル名をロックできませんでした。現在、コンピューター<コンピューター>名>のユーザー <セキュリティ名>で使用されています。
注意
ロック ファイル内の情報の状態が、データベースの状態に影響を与えることはありません。 ロック ファイルが破損した場合でも、データベース内のすべてが正しく動作するはずです。 ただし、ロック競合メッセージには、ユーザー名の代わりにスクランブルされたテキストが表示される場合があります。
Microsoft Visual Basic for Applicationsを使用すると、特定のデータベースにログインしているユーザーの一覧を出力できます。 この方法とサンプル コードの詳細については、「 Access で Microsoft Jet UserRoster を使用して、データベースにログオンしているユーザーを特定する方法」を参照してください。