AccScan
技術

.laccdbロックファイルとは?「使用中」で開けない原因と対処

AccessのロックファイルはAccess 2007以降が.laccdb、旧.mdb形式は.ldb。共有で開くと自動作成され全員閉じれば消えます。残留時に勝手に消す前の確認手順と、最適化/修復に排他アクセスが要る理由を技術的に解説します。

まずは、自社のAccessが「解析できるか」を無料で確認できます。

約2分・ファイル送信不要・発注義務なし

結論:.laccdbは正常動作の産物で、むやみに消してはいけません

Accessで「使用中のため開けません」と表示されたとき、同じフォルダに拡張子 .laccdb のファイルが残っているのを見つけて「これを消せば直る」と判断しがちです。しかし .laccdb はAccessが共有モードで開かれると自動で作るロックファイルで、通常は共有利用中に存在します。公式文書では削除権限不足とデータベース破損マークが残留する例外として明記されており、当社環境では異常終了後に残留した事例もあります。ファイルの存在だけでは利用中かどうかを断定できないため、削除前に全員がAccessを閉じているかどうかを先に確認する必要があります。

.laccdbと.ldbの違い

Microsoftの公式ドキュメント(「Description of Access lock files (laccdb and ldb)」)によると、ロックファイルには2種類あります。

ファイル形式対応するデータベース備考
.laccdb.accdb(Access 2007以降)現在の標準形式
.ldb旧来の.mdb形式(現行AccessはAccess 2000/2002-2003形式を開けます。その場合は.ldbが作られます。Access 97形式は事前変換が必要)動作原理は.laccdbと同じ

名前が違うだけで、どちらも同じ仕組みで動きます。データベースを共有フォルダに置いて複数人で使う場合、どちらの形式でもロックファイルが同じフォルダに自動で作られます。

ロックファイルの中身:誰が使っているかを記録する

.laccdb の内部は、共有データベースを開いているユーザー分のエントリで構成されています。公式ドキュメントによると、1エントリは64バイト固定で、前半32バイトにコンピュータ名、後半32バイトにAccessのセキュリティ名(既定では「Admin」など、Windowsログオン名と異なる場合があります)が入ります。

ユーザーがデータベースを閉じても、そのエントリは即座に削除されるわけではありません。次のユーザーが開いたときに上書きされる形で再利用されます。そのため、ロックファイルの中身だけを見て「今誰が使っているか」を確実に判断することはできない点に注意が必要です。

Accessデータベースエンジンが同時にサポートできるユーザー数は最大255人です。1エントリ64バイト×255ユーザー分なので、ロックファイルのサイズは最大でも16キロバイトにとどまります。実務上は大きなファイルではありません。

自動作成と自動削除のタイミング

ロックファイルは共有モードで開いたタイミングで自動作成され、最後のユーザーがデータベースを閉じると自動削除されます。排他モード(「ファイルを開く」ボタンの右矢印から「排他的に開く」を選択)で開いた場合は、ロックファイルは作られません。排他モードではレコードロックの仕組み自体が使われないためです。

例外として、以下の場合はロックファイルが自動削除されません。

  • ロックファイルのあるフォルダに対して削除権限がないユーザーが最後に閉じた場合
  • データベースが破損状態として記録されている場合(破損時点で誰が使っていたかを記録するため、意図的に残される)

「使用中」エラーの原因と確認手順

Accessで「排他ロックできません」や「使用中です」と出る状況には複数のパターンがあります。他ユーザーが共有モードで開いているだけなら、自分も共有モードで開くことは通常できます。開けなくなるのは主に、排他アクセスが必要な操作(最適化/修復など)をしようとした場合や、別ユーザーが排他モードで開いている場合です。

状況主な原因確認方法
最適化/修復が「使用中」で実行できない誰かが共有モードで接続中のため排他アクセスを取得できない全員が接続を切ってから排他的に開いて実行する
共有モードで開こうとしても拒否される別ユーザーが排他モードで開いている、またはファイルサーバー上に排他アクセスを妨げる接続やロックが残っている可能性がある排他モードで開いているユーザーを特定して閉じてもらう。ファイルサーバー上の接続やロック状態も確認する
全員が閉じたはずなのにロックファイルが残っている削除権限の不足、またはデータベース破損マーク(Microsoft公式が明記する例外)。当社環境では異常終了後に残留した事例もあります。ロックファイルの存在自体は排他アクセスを阻止するものではなく、実際に問題になるのはファイルのオープンハンドルが残っている場合です各自のPCでプロセス終了を確認し、ファイルサーバー上の当該ファイルに対するオープンハンドルがないことを確認してから手動削除する
フォルダの権限が不足しているロックファイルの作成や削除に必要な権限がないフォルダに読み取り・書き込み・作成権限(削除権限も推奨)が付与されているか確認

共有フォルダに置いたaccdbを複数人で使う場合、フォルダへの権限として読み取り・書き込み・作成の3つが全ユーザーに必要です(公式ドキュメントに明記)。削除権限は正常な自動削除のために推奨されており、欠けているとロックファイルが残り続ける場合があります。accdbファイル本体を読み取り専用にしたまま共有することは可能ですが、フォルダへの削除権限まで付与することをおすすめします。

残留ロックファイルへの正しい対処

Accessが正常に終了したはずなのにロックファイルが残っている場合、以下の手順で確認してから対処してください。

  1. データベースを使っている全員にAccessおよびAccess連携アプリ(ExcelマクロやODBC接続アプリなど)をすべて終了してもらう
  2. 自分のPCでもAccessをすべて閉じ、タスクマネージャーでプロセスが残っていないことを確認する
  3. 各利用者にも各自のPCで同様に確認してもらう
  4. ファイルサーバー側で当該ファイルのオープンハンドルが残っていないか管理者に確認してもらう
  5. これでロックファイルが消えていれば問題解決。消えなければ、フォルダ権限か破損の問題を疑う

接続が残っている状態でロックファイルを手動削除することは当社では推奨しません。全接続終了を確認してから対処するのが安全です。「ロックファイルを消せば直る」ではなく「なぜロックファイルが残っているか」を先に特定してください。

なお、公式ドキュメントには「ロックファイルが破損しても、データベース本体には影響しない」と明記されています。ロックファイル自体が壊れた場合は、データは正常に動作しますが、ロック競合メッセージでユーザー名が文字化けすることがあります。

最適化/修復にロックファイルが邪魔をする理由

Accessの「最適化/修復」を実行するには、データベースへの排他アクセスが必要です(公式ドキュメント:Compact and Repair a database)。排他アクセスとは、自分だけがデータベースを開いている状態のことです。

共有モードで誰かが開いていれば、ロックファイルが存在する状態なので排他アクセスを取れず、最適化は実行できません。「最適化しようとしたら『使用中』と出て実行できない」という状況は、この仕組みが正しく働いている結果です。実行者が誰であっても、他の利用者や接続をすべて終了して排他アクセスを確保してから実行する必要があります。

ファイルの破損や容量の肥大化が気になる場合は、Accessファイル破損の予防策と合わせて定期的なメンテナンス手順を整えることをおすすめします。

複数人での同時利用そのものを安定させたい場合は、Accessが複数人で使うと遅い・壊れる原因と移行先で構造的な対処を整理しています。

よくある質問

Q. .laccdbファイルは削除してもよいですか?

全員がAccessおよびAccess連携アプリを閉じ、ファイルサーバー上のオープンハンドルもないことを確認できたなら、削除して構いません。ただし、データベースが破損状態としてマークされているケースでは、ロックファイルに利用者情報が保持されているため削除前に原因を確認してください。接続が残っている状態での削除は当社では推奨しません。

Q. .laccdbを開こうとするとエラーになります。

.laccdb はAccessの内部管理ファイルで、直接開くものではありません。Accessで開こうとするとエラーになるのは正常な動作です。このファイルをユーザーが直接操作する必要はなく、Accessが自動で作成・削除します。

Q. 「排他ロックできない」と出て最適化できません。

他の接続やファイルハンドルが残っている可能性があります。全員がAccessおよびAccess連携アプリを終了していることを確認し、ファイルサーバー側でも排他アクセスを妨げる接続やロックが残っていないか確認してください。全接続を切断してから「排他的に開く」で開き直して最適化を実行してください。それでも解消しない場合は、フォルダのアクセス権限(削除権限の有無)を確認してください。

Q. OneDriveやSharePointに置いたaccdbでもロックファイルは作られますか?

MicrosoftはOneDriveやSharePoint上のAccessファイルを直接開いて使う運用を避けるよう案内しています。当社実務上も、同期競合を避けるため同一accdbの複数人利用にはLAN共有フォルダか、データをSQL Server等に移す構成を推奨します。詳しくはOneDrive・SharePoint上でAccessを共有してはいけない理由をご覧ください。

ロックファイルの問題が繰り返し起きる場合、データベース構造や運用方法に根本的な課題がある可能性があります。無料の解析可否チェックで現状を確認することもご検討ください。

触れないAccessが「診断できるか」だけ、確かめませんか。

顧客データは送信不要。発注の義務もありません。

約2分・ファイル送信不要・発注義務なし/説明はオンライン・売り込みはしません