Access 2000 の .ldb ファイルについて

この記事は、以前は次の ID で公開されていました: JP208778
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
Microsoft Access 97 については、次の資料を参照してください。136128
難易度 : 中。基本的なマクロ、コーディング、相互運用性に関する知識が必要です。

この資料は Microsoft Access データベース (.mdb) についてのみ記述したものです。

Microsoft Access 2002 については、次の資料を参照してください。299373
概要
.ldb ファイルは、Microsoft Jet データベース エンジン 4.0 のマルチユーザー環境で重要な役割を果たします。.ldb ファイルは、共有で使用されているデータベースにおいて、どのレコードがだれによってロックされているかを判断するために使用されます。
詳細

.ldb ファイルの自動作成および自動削除

共有で使用するために開かれたそれぞれのデータベースに対して、.ldb ファイルが作成されます。そしてコンピュータ名とセキュリティ名が格納され、拡張バイト範囲ロックを格納します。.ldb ファイルは、開かれたデータベース (.mdb) と常に同じ名前で、開かれたデータベースと同じフォルダ内に存在します。たとえば、C:\Program Files\Microsoft Office\Office\Samples フォルダの Northwind.mdb サンプル データベースを共有で使用するために開くと、Northwind.ldb というファイルが同じフォルダ内に自動的に作成されます。

最後のユーザーが共有データベースを閉じると必ず、.ldb ファイルは削除されます。ただし、例外としてユーザーが削除の権利を持っていない場合、またはデータベースが破損している場合には削除されません。データベースが破損している場合、.ldb ファイルには、データベースが破損しているとマークされた時点でだれがデータベースを使用していたかなどの情報が含まれているため、.ldb ファイルは削除されません。

必要なフォルダの権限

データベースの共有を計画している場合、.mdb ファイルは、ユーザーが読み取り、書き込み、作成、および削除の権限を持っているフォルダ内に置く必要があります。ユーザーにそれぞれ異なるファイル権限を付与する場合 (たとえば、あるユーザーには読み取り専用で、あるユーザーには読み取りと書き込みなど) でも、データベースを共有しているすべてのユーザーは、そのフォルダに対しては読み取り、書き込み、および作成の権限を持っている必要があります。ただし、フォルダに対するすべての権限を許可した状態で、個別のユーザーに .mdb ファイルへの読み取り専用の権限を割り当てることができます。

: [ファイルを開く] ダイアログ ボックスの [排他] チェック ボックスをオンにしてユーザーが排他アクセスでデータベースを開くと、レコードのロックは発生しません。そのため、Microsoft Access は .ldb ファイルを開いたり作成したりしません。データベースが常に排他モードで開かれる場合、ユーザーに必要なのは、フォルダに対する読み取りと書き込みの権限のみです。

.ldb ファイルの内容

共有データベースを開く各ユーザーに対して、Jet データベース エンジンはデータベースの .ldb ファイルにエントリを書き込みます。各 .ldb エントリのサイズは 64 バイトです。最初の 32 バイトにはコンピュータ名 (JohnDoe など) が入り、2 番目の 32 バイトにはセキュリティ名 (Admin など) が入ります。Jet データベース エンジンがサポートする同時実行ユーザーの最大数は 255 なので、.ldb ファイルのサイズは 16 KB より大きくなることはありません。

ユーザーが共有データベースを閉じても、そのユーザーのエントリは .ldb ファイルから削除されません。ただし、別のユーザーがデータベースを開くと上書きされます。そのため、.ldb ファイルだけを使用して、現在、だれがデータベースを使用しているかを判断することはできません。

.ldb ファイルの用途

Jet データベース エンジンは .ldb ファイルの情報を使用して、他のユーザーがロックしているページにユーザーがデータを書き込むのを阻止し、他のページをロックしているのはだれかを判断します。Jet データベース エンジンは、他のユーザーとのロックの競合を検出した場合、.ldb ファイルを読み取って、ファイルやレコードをロックしているユーザーのコンピュータ名とセキュリティ名を取得します。

ロックの競合が発生した状況では、ほとんどの場合、一般的な "データの競合" メッセージが表示されるため、レコードの保存、クリップボードへのコピー、または行った変更の取り消しを行うことができます。ただし、特定の状況では、次のエラー メッセージが表示されることがあります。
テーブル <table name> はマシン<computer name>.のユーザー <security name> によって使用されているため、ロックできませんでした。
: .ldb ファイル内の情報の状態は、データベースの状態には何の影響もありません。.ldb ファイルが破損しても、データベース内のすべてのものは依然として正常に機能します。ただし、ロックの競合メッセージが表示される場合は、ユーザー名の代わりに判読できないテキストが表示されることがあります。
関連情報
Access 2000 で Microsoft Visual Basic for Applications を使用すると、特定のデータベースにログインしているユーザーの一覧を出力できます。

その方法、およびサンプル コードを参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
198755 [HOWTO] Access 2000 でデータベースにログインしているユーザーをチェックする方法
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 208778 (最終更新日 2005-01-26) を基に作成したものです。
プロパティ

文書番号:208778 - 最終更新日: 12/05/2015 10:55:54 - リビジョン: 3.1

Microsoft Access 2000 Standard Edition

  • kbnosurvey kbarchive kbinfo kbusage KB208778
フィードバック