AccScan
技術

Accessエラー3049「データベースを開けませんでした」の原因と対処

エラー3049「Cannot open database」の主因はファイルの破損と2GB到達。対処は元ファイルのコピー保全→最適化/修復→新規DBへのインポート再構築の順。2GBが背景にある場合は修復しても再発するため根本対処が必要です。

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

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

結論:まず元ファイルをコピーしてから、原因を切り分ける

エラー3049の英語メッセージテンプレートは「Cannot open database '|'. It may not be a database that your application recognizes, or the file may be corrupt.」です(以下の日本語訳は当社訳。テンプレート内の '|' 部分には実際のエラー表示では対象名が入る例があります)。文言から確認すべき点が2つあります。アプリケーションが認識できない形式かどうか、ファイルが破損していないかどうか、です。また2GB上限への到達もMicrosoft Q&Aで確認候補として挙げられています。

何より先にやるべきことは一つです。元ファイルを別フォルダにコピーすること。修復の過程でテーブルのデータが切り捨てられる場合があるとMicrosoft公式ドキュメントに明記されており、修復前の状態を保全しておくことが重要です。可能であれば別のドライブや媒体にも複製しておくとより安全です。

エラー3049が出る状況の切り分け

同じエラーコードでも、背景はいくつかあります。以下の表で状況を確認してください。

考えられる原因よくある状況確認のポイント
ファイルの破損(書き込み中断)強制終了・ネットワーク切断・停電直後に開けなくなった直前に異常終了したか、共有フォルダ経由で使っていたか
アプリケーションが認識できない形式(バージョン不整合・非Accessファイル)別のPCに移したら急に開けなくなった、拡張子を間違えた作成したAccessのバージョン、ファイルの作成経緯
2GBサイズ上限への到達(確認候補)ファイルサイズが2GB上限に近い、データ蓄積が続いていたエクスプローラーでファイルサイズが2GB上限に近づいていないか
ストレージ障害・その他(当社の切り分け項目)HDDの不良セクタ、NASの障害後、VBAの大量ファイル操作後他のファイルに異常がないか。chkdskでディスクエラーが出ないか

Accessのデータベースファイル(.accdbおよび.mdb)の最大サイズは2GBです(Microsoft公式仕様:Access specifications - Microsoft Support)。実際に使える容量は「2GBからシステムオブジェクト分を差し引いた値」となるため厳密には2GB未満です。2GB上限が3049の直接の原因かどうかはケースによりますが、Microsoft Q&Aの個別回答でも「2GBに達していないか確認する」ことが提案されています(ERROR 3049: CANNOT OPEN DATABASE - Microsoft Q&A)。

対処手順:順番を守って試す

手順は順番が重要です。元ファイルへの余計な操作を重ねるほど復旧が難しくなります。

  1. 元ファイルをコピーして、コピーで作業する:元ファイルは一切触らず、別フォルダにコピーした複製に対して以降の作業を行います。Microsoftも修復直前のバックアップを推奨しています。可能なら別媒体への複製も行ってください。
  2. ロックファイルを確認する:同じフォルダに同名の.laccdb(または.ldb)ファイルが残っている場合があります。これはAccessが正常に閉じれば自動削除されます。残っている場合は、全員がAccessを閉じているか確認してください。ただしロックファイルの残留が3049の直接原因とは限りません。
  3. 「最適化/修復」機能を試す:Accessを起動して空のデータベースを作成してすぐ閉じ、「データベースツール」→「データベースの最適化/修復」から対象ファイルを指定します。直接開けないファイルにも適用できます(Compact and Repair a database - Microsoft Support)。修復の過程でテーブルのデータが切り捨てられる場合があるため、手順1のコピー保全は必須です。詳細はAccessの「最適化/修復」の正しい使い方もあわせてご覧ください。
  4. コマンドラインで修復を試みる:/compactスイッチを使う方法です。コマンドプロンプトで次を実行します(パスは環境に合わせて変更してください):
    "C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE" "C:\作業フォルダ\コピーしたDB.accdb" /compact
    処理が終わるとAccessは自動的に閉じます(コマンドラインスイッチの仕様 - Microsoft Support)。処理後にファイルを開いて動作を確認してください。
  5. 新規DBへのインポートで再構築する:修復で開けない場合は、新しい空のAccessファイルを作成し、破損ファイルから「外部データの取り込み」でテーブル・クエリ・フォームなどをオブジェクト単位にインポートします。破損が一部に限られていれば、無事なオブジェクトを移し替えて再構築できます。特定のオブジェクトがインポートできない場合は、破損のほか依存関係や参照設定も確認してください(ERROR 3049: CANNOT OPEN DATABASE - Microsoft Q&A)。

ここまで試してもデータが取り出せない場合は、専門業者によるデータ復旧の相談に進む段階です。元ファイルへのさらなる操作は復旧を難しくする可能性があるため(当社の対応経験上)、現状のまま保管しておいてください。

2GB上限が絡んでいる場合の注意

ファイルサイズが2GB上限に近い状態だった場合、修復で開けるようになっても同じファイルへのデータ追加を続けると再度上限に達する可能性があります。Accessファイル自体の2GB上限は変更できません(同公式仕様)。対処の選択肢は、古いデータを別ファイルにアーカイブしてサイズを縮小する方法、テーブルを複数のAccess DBファイルに分割してリンクする方法、SQL Serverなど外部DBへのバックエンド移行の3つです。継続的にデータが増える業務では、アーカイブによる縮小は一時しのぎとなる場合があります。2GBの上限について詳しくはAccessの2GBの壁とは?をご覧ください。

現在のAccessファイルが解析できるか確認したい場合は、無料の解析可否チェックも使えます。

3049が繰り返す場合の確認ポイント

修復して一度開けるようになっても同じ3049エラーが繰り返す場合は、原因が解消できていないか別の要因が重なっています。ファイルの破損が残っていないか、サイズ上限に再度近づいていないか、共有フォルダ上で複数人が直接開く構成になっていないか、ネットワーク環境が不安定でないか、VBAの処理中に大量のファイル操作が走っていないかなど、ファイル・利用構成・ネットワーク・実行処理を含めて再調査が必要です。

破損の原因別の対処と予防についてはAccessファイルが破損したらで整理しています。より技術的な復旧手順(新規DBインポートの詳細・部分救出の考え方)については破損したAccess DBの技術的な復旧手順もあわせてご覧ください。

よくある質問

Q. エラー3049が出たとき、まず何をすればよいですか。

元ファイルのコピーを別フォルダ(可能なら別媒体)に保存することが最初の一手です。修復操作はファイルの状態を変えるため、修復前の状態を保全することが重要です。コピーを確保してから「最適化/修復」やインポート再構築を試してください。

Q. 「最適化/修復」を試しましたが変化がありません。次は何をしますか。

新規の空Accessファイルを作成し、「外部データの取り込み」でオブジェクト単位にインポートする方法を試してください。テーブルだけでも取り出せれば、業務データを救出できる場合があります。それでも取り出せない場合は、それ以上の操作は控えて専門業者に相談するタイミングです。

Q. ファイルサイズが2GB上限に近い状態で3049が出ました。修復すれば使い続けられますか。

2GB上限が背景にある場合、修復でその場は開けるようになっても同じファイルへのデータ追加を続けると再度上限に達する可能性があります。Accessの2GB上限は変更できないため、継続的にデータが増える業務では古いデータのアーカイブや移行を検討する時期です。修復はあくまで応急処置として位置づけてください。

Q. 「データベースの形式を認識できません」という表示が出ています。3049とは別のエラーですか。

表示される文言が異なる場合はエラー番号も確認してください。「Unrecognized database format」などに対応する別のエラー番号が出ている場合は、バージョン不整合や拡張子の問題が背景にある可能性があります。ただし文言だけでエラーを区別することは難しく、実際に出ているエラー番号と発生元の操作を合わせて確認するのが確実です。バージョン不整合が疑われる場合は「データベースの形式を認識できません」エラーの原因と復旧手順もご覧ください。

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

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

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