「データベースの形式を認識できません」エラーの原因と復旧手順
Accessで「データベースの形式を認識できません」が出る原因は4つ(バージョン不整合・破損・拡張子偽装・別製品ファイル)。.accdbはAccess 2003以前では開けない仕様で、破損時は/compactコマンドやインポート再構築で対処。まず元ファイルのコピーが大原則です。
結論:まず元ファイルのコピーを取り、それから原因を切り分ける
「データベースの形式を認識できません」というメッセージが出てAccess(アクセス)ファイルが開けなくなったとき、焦って元ファイルへの修復操作を繰り返すと復旧を難しくする可能性があります(当社の対応経験上)。最初にやるべきことは一つ、元ファイルのコピーを別フォルダに保存することです。その後、原因を切り分けてから対処します。
このエラーが出る主な原因としては、バージョンの不整合、ファイルの破損、拡張子の偽装、AccessではないファイルをAccessで開こうとしている場合などがあります。まず原因を確認することで、正しい対処法が見えてきます。
エラーの原因を切り分ける
同じエラーメッセージでも、背景が違えば対処も違います。次の表で、自分の状況に近いものを確認してください。
| 考えられる原因 | よくある状況 | 確認のポイント |
|---|---|---|
| バージョンの不整合(新しい形式を古いAccessで開こうとしている) | PCを新しくした、または別のPCに持ち込んだ | ファイルの拡張子が.accdbか。相手のAccess版数がいつ頃のものか |
| バージョンの不整合(古いmdb形式を新しいAccessが認識できない) | Access 97形式の古いファイルを現行Accessで開こうとしている | 拡張子が.mdbで、さらに古いバージョン(Access 97など)で作られていないか |
| ファイルの破損 | 強制終了・ネットワーク切断・停電後に開けなくなった | 直前にPCを強制終了したか、共有フォルダ経由で使っていたか |
| 拡張子の偽装・誤った拡張子(当社の対応経験上) | 別の形式のファイルを.accdbや.mdbに変名してしまった | ファイルの作成経緯を確認する(作成者・使用ソフトを関係者に確認) |
| AccessではないファイルをAccessで開こうとしている | ExcelファイルやCSVをAccessで開こうとしている | ファイルの種類を再確認する |
バージョン不整合の場合の対処
Access 2007から導入された.accdb形式は、Access 2003以前の環境では開けません。Microsoft公式ドキュメントにも「.accdbファイル形式は、Access 2007より前のバージョンで開くことも、リンクすることもできない」と明記されています(Which Access file format should I use? - Microsoft Support)。Access 2007以降同士は基本的に同じ.accdb形式を共有しますが、Access 2010以降の固有機能を使ったファイルをAccess 2007で開くと、一部の機能が利用できない場合がある点は注意が必要です(同公式ドキュメント参照)。
また、Access 97形式の.mdbファイルをAccess 2013以降で開こうとすると互換性エラーになる場合があります。Access 2013以降ではAccess 97の.mdbを直接.accdbに変換できないため、Microsoft公式ドキュメントではAccess 2007を使ってAccess 2000またはAccess 2002-2003形式に変換する手順を案内しています(同公式ドキュメント参照)。
バージョン不整合だけが原因であれば、ファイルが破損しているとは限りません。.accdbを古い環境で開こうとしている場合は新しいAccessが使える環境で開き直す方法がとれます。Access 97形式の場合はAccess 2007で中間変換する手順を検討してください。
ファイルが破損している場合の復旧手順
強制終了やネットワーク切断がきっかけでこのエラーが出た場合、ファイルが破損している可能性があります。次の順番で試してください。
- 元ファイルをコピーして、コピーで作業する:元ファイルには一切手を触れず、別フォルダにコピーした複製に対して以降の操作を行います。失敗しても元に戻せる状態を確保してから先に進みます。
- ロックファイル(.laccdb)を確認する:同じフォルダに同名の.laccdbファイルが残っている場合があります。このファイルは共有モードでAccessが開いているときに自動作成され、正常に閉じれば削除されます。ただし.laccdbはデータベース本体の状態とは別物で、残っていても本エラーの直接原因とは限りません。確認できれば、全員がAccessを閉じているかどうかを合わせてチェックします。
- コマンドラインで修復を試みる:Accessの/compactスイッチを使って修復を試せます。コマンドプロンプトで次を実行します(パスは環境に合わせて変更してください):
"C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE" "C:\作業フォルダ\コピーしたDB.accdb" /compact
/compactは処理が終わるとAccessを閉じます(コマンドラインスイッチの仕様 - Microsoft Support)。処理後にファイルを改めてAccessで開いて動作を確認してください。 - Accessの「最適化/修復」機能を試す:Accessを起動して「空のデータベース」を作成後にすぐ閉じ、「データベースツール」→「データベースの最適化/修復」から対象ファイルを指定すると、直接開けないファイルに対しても修復を試みられます(Compact and Repair a database - Microsoft Support)。ただし公式ドキュメントには「修復の過程で、破損したテーブルの一部データが切り捨てられる場合がある」と明記されています。実行前のコピーは必須です。詳細はAccessの「最適化/修復」の正しい使い方もご覧ください。
- 新規DBへのインポートで再構築する:修復でも開かない場合は、新しい空のAccessファイルを作成し、破損ファイルからテーブル・クエリ・フォームなどを「外部データの取り込み」でオブジェクト単位にインポートします。破損が一部に限られていれば、無事な部分を移し替えて再構築できます。
ここまで試してもデータが取り出せない場合は、専門業者によるデータ復旧の相談に進む段階です。元ファイルへのさらなる書き込みや修復の繰り返しは復旧を難しくする可能性があるため(当社の対応経験上)、現状のまま保管しておくことをおすすめします。
拡張子の偽装・誤りが原因の場合
拡張子が.accdbでもファイルの中身がExcelやCSV、あるいは別のソフトのデータファイルであれば、Accessはそのまま「形式を認識できません」と返します。エクスプローラーの「種類」欄は拡張子とWindowsの関連付けに基づく表示なので、中身の判別には使えません。ファイルの作成経緯(誰が何で作ったか)を関係者に確認するのが現実的な方法です。
拡張子を誤って.mdbや.accdbに変えてしまった場合は、元の正しい拡張子に戻すと対応ソフトで開ける可能性があります。AccessではないファイルをAccessで開こうとしても、エラーになるだけです。
同じエラーが繰り返す場合の根本原因
一度修復できても、同じエラーが繰り返す場合は、運用環境に破損を起こしやすい構造的な問題があります。代表的なものを挙げると、DBを分割せず1ファイルのままネットワーク越しに複数人で使う構成と、最適化が長期間行われていない状態です。また別途、Accessのファイルサイズ上限(2GB)に近づいていないかも確認してください。
破損の原因と予防策についてはAccessファイルが破損する7つの原因と予防の運用ルールで詳しく解説しています。また、修復の手順全般についてはAccessファイルが破損したらもあわせてご覧ください。
破損が繰り返す場合や、データ量や利用人数が増えてきた場合は、根本対処としてバックアップ運用の整備と並行して、移行の検討を始める時期かもしれません。現在のAccessが解析できるかどうかを確認したい場合は、無料の解析可否チェックで目安を確認できます(ファイル送信不要です)。
予防としてできることは3点です。定期的なバックアップ(使用中を避けて世代管理をする)、定期的な「最適化/修復」の実行、そして共有フォルダ上の単一DBを全員が直接開く運用をやめてDB分割(フロントエンドを各端末に置く構成)に切り替えることです。バックアップの具体的な設計については延命中のAccessを守るバックアップ設計を参照してください。
よくある質問
Q. 「データベースの形式を認識できません」と出たとき、すぐにAccessの修復機能を使ってもよいですか。
まず元ファイルのコピーを取ってください。修復機能は破損したテーブルのデータを一部切り捨てる場合があります(公式ドキュメント明記)。コピーを取っておけば、修復後に問題が起きても元に戻せます。
Q. 新しいPCに移したら急にこのエラーが出ました。ファイルが壊れましたか。
このエラーは、ファイルの破損だけでなく、開こうとしているAccessのバージョンが作成元より古いことでも起こります。Access 2007より前のAccessでは.accdb形式を開けないという互換性上の制約があるため、まず新旧PCのAccessのバージョンを確認してください。当社への相談では、破損ではなくバージョン不整合が原因だった例もあります。
Q. Access 97時代のmdbファイルを現行Accessで開けません。どうすればよいですか。
Access 2013以降では、Access 97の.mdbを直接.accdbに変換できません。Access 2007を使えるPCで一度Access 2000またはAccess 2002-2003形式に変換し、その後現行バージョンで開く手順が必要です。Access 2007が手元にない場合は、対応できる環境を持つ業者への相談が現実的です。
Q. 新規DBへのインポートを試しましたが、一部のオブジェクトがインポートできません。
破損が深い場合、一部のフォームやモジュールがインポートできないことがあります。テーブルのデータさえ取り出せれば業務を再開できる場合は、フォームやレポートは再作成する方法もあります。それでも重要データが取り出せない場合は、専門業者への依頼を検討してください。その際は現状のままファイルを保管し、余計な操作は加えないことが重要です。
触れないAccessが「診断できるか」だけ、確かめませんか。
顧客データは送信不要。発注の義務もありません。
約2分・ファイル送信不要・発注義務なし/説明はオンライン・売り込みはしません