AccScan
技術

Accessでよく出るエラーメッセージと原因・対処の早見表

Accessで頻出する7パターンのエラーを早見表で整理。「形式を認識できません」「使用中」「パラメータが少なすぎます」「ディスクエラー」など、原因の切り分けと一次対処を、各詳細記事へのリンク付きで解説します。

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

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

エラーの種類と一次対処の早見表

Accessで発生しやすいエラーを、メッセージの特徴・主な原因・まず試すこと、の3軸で整理しました。以下の表は当社が実務で頻繁に確認するパターンをまとめたものです。表の後の各節でそれぞれ掘り下げています。

メッセージ(または症状)主な原因まず確認・試すこと
「データベースの形式を認識できません」バージョン不整合・ファイル破損・拡張子偽装元ファイルをコピーしてから最適化/修復を試す
「他のユーザーがデータベースを使用中のため…」という趣旨のメッセージ.laccdb(.ldb)ロックファイルの残留・他PCで開いたまま全員がAccessを閉じているか確認。残留ファイルの削除は接続者ゼロを確認してから
「パラメータが少なすぎます」または「Too few parameters」クエリ内のフィールド名・テーブル名の綴り誤りクエリをデザインビューで開き、赤い×印のフィールドを確認する
「ディスクまたはネットワークエラー」という趣旨のメッセージネットワーク切断・共有フォルダへのアクセス不能・ファイル破損ファイルをローカルにコピーして開けるか試す
「書き込めません」「ディスクがいっぱいです」という趣旨のメッセージ2GBサイズ上限への到達・ディスク空き不足ファイルサイズをエクスプローラーで確認(上限は2GB)
保存・更新できない、レコードを書き込めない排他ロック・権限不足・ファイルサイズ上限他のユーザーが同じレコードを開いていないか確認。ファイルサイズも確認する
セキュリティ警告バー表示・マクロやフォームが動かない信頼センターによるコンテンツブロック信頼できる場所にフォルダを登録するか、コンテンツを一時的に有効化

エラー番号(3000番台・2000番台など)は同じ番号でも複数の原因があり、番号だけで原因を断定するのは難しいケースがあります。以下では代表的な4パターンを詳しく説明します。

「データベースの形式を認識できません」

このメッセージが出る原因は大きく3つに分かれます。

1つ目はバージョン不整合です。.accdb形式はAccess 2007より前のバージョンでは開くことができません(Which Access file format should I use? | Microsoft Support)。古いPCに入っているAccessで新しい.accdbを開こうとしている場合、このメッセージで止まります。

2つ目はファイル破損です。拡張子が.accdbでも、中身が壊れているとこのメッセージが出ます。ネットワーク切断や強制終了の直後に開けなくなった場合はこのパターンを疑ってください。まず元ファイルのコピーを別の場所に保存してから、Accessの「最適化/修復」を試します。修復の詳細は「データベースの形式を認識できません」エラーの原因と復旧手順にまとめています。

3つ目は拡張子の偽装・誤りです。ExcelファイルやZIPファイルの拡張子を.accdbに変えたものを開こうとしても同じメッセージが出ます。エクスプローラーの「ファイルの種類」列は拡張子ベースの表示なので実体の判別には使えません。ファイルの入手経路や作成元を確認するか、詳細は「データベースの形式を認識できません」エラーの原因と復旧手順を参照してください。

「使用中のため開けない」「ロックファイルが残っている」

Accessは共有で開かれると.laccdb(旧.mdb形式なら.ldb)というロックファイルを自動的に作成します。このファイルは全ユーザーがAccessを閉じると削除されますが、異常終了した場合に残ることがあります。

「他のユーザーが使用中」という趣旨のメッセージが出た場合、まず本当に他のPCで開いていないか確認します。全員が閉じているのにメッセージが消えない場合、.laccdbが残留している可能性があります。ただし削除権限不足やデータベース破損が原因でロックファイルが残ることもあります。なおMicrosoftの公式情報によると、ロックファイルの内容だけでは現在接続中かどうかを確実に判定することはできません(閉じた後もエントリが残るため)。.laccdbを削除する前に、接続の有無をサーバー側のセッションも含めて確認してください。ロックファイルの仕組みと対処の詳細は.laccdbロックファイルとは?「使用中」で開けない原因と対処を参照してください。

なお、「最適化/修復」を実行するには排他アクセスが必要です。他のユーザーが接続したままでは実行できません。

「パラメータが少なすぎます」(Too few parameters)

クエリを実行したときに「パラメータが少なすぎます」または英語メッセージで「Too few parameters」と表示される場合、クエリのSQL文の中にAccessが認識できないフィールド名またはテーブル名が含まれています。Accessはこれをパラメータ(入力を求める値)と解釈しようとしますが、入力が足りない状態でエラーになります。

原因として多いのは次の3つです。(1)フィールド名の綴り間違い(全角半角・スペースの有無を含む)、(2)テーブルやクエリを削除・リネームしたのに参照先を修正していない、(3)VBAからクエリを呼ぶ際にパラメータを渡し忘れている。

切り分けはクエリをデザインビューで開くのが早道です。フィールド一覧に赤い×印が付いているフィールド、または「フィールド」行に手打ちされた名前が参照元テーブルに存在するか確認してください。VBAからRecordsetを開く際にパラメータクエリを使っている場合は、QueryDefsのParametersコレクションで値をセットしてから実行する必要があります。

「ディスクまたはネットワークエラー」と2GBサイズ上限

ネットワーク共有のフォルダに置いたaccdbを複数人で使っているときに「ディスクまたはネットワークエラー」という趣旨のメッセージが出る場合、ネットワーク接続の不安定さかファイル破損が疑われます。まずファイルをローカルにコピーして開けるか試してください。ローカルで開けるようならネットワーク側に問題がある可能性が高まります。ローカルでも開けない場合は、ファイル破損・バージョン不整合・セキュリティ設定など他の原因も排除しながら切り分けてください。ファイル破損が疑われる場合はAccessファイルが破損したら|修復の手順と、繰り返す破損の根本対処の手順を参照してください。

別のエラーとして、保存や更新ができなくなる「書き込めない」「いっぱいです」といった趣旨のメッセージは2GBのサイズ上限に達したサインのことがあります。Accessデータベースの最大ファイルサイズは2GBで、これはMicrosoftの公式仕様として明記されています(Access specifications | Microsoft Support)。エクスプローラーでaccdbのプロパティを確認して2GBに近づいていないか確認してください。詳しくはAccessの2GBの壁とは?限界のサインと、超える前にやるべきことを参照してください。

マクロ・VBAが動かない(セキュリティ警告)

ファイルは開けるが、フォームのボタンを押しても何も起きない、メニューが動かない場合、リボンの下部にセキュリティ警告のメッセージバーが表示されていないか確認してください。表示されていれば、Accessの信頼センターがコンテンツ(VBA・マクロ)をブロックしています。

一時的な対処は「コンテンツの有効化」をクリックすることです。ただし「コンテンツの有効化」はVBA・マクロが実行可能になる操作なので、自社で作成・管理しているファイルであることを確認してから実行してください。毎回の操作を省くには、ファイルの保存場所を「信頼できる場所」として登録します。設定の詳細はAccessのセキュリティ警告とマクロ有効化|信頼できる場所の設定にあります。

ファイルを別のフォルダに移したら急に動かなくなった場合も、信頼できる場所の登録が外れたことが原因のほとんどです。

どこに当てはまるかわからない場合

上記のどのパターンにも当てはまらない、あるいは修復を試したが開けないままという場合、ファイルが重度に破損しているか、複数の原因が重なっている可能性があります。破損したAccess DBの技術的な復旧手順|新規DBインポートと部分救出では、標準の修復を超えた段階的な復旧手順を解説しています。

エラーの状況が複雑でご自身での切り分けが難しい場合は、無料の解析可否チェックでファイルを送らずに状況を仮判定できます。

よくある質問

Q. エラー番号で原因を調べたいのですが、番号で検索してもはっきりしません。

Accessのエラー番号(3000番台・2000番台など)は1つの番号に複数の原因が紐づくことがあり、番号だけで原因を特定するのは難しいケースがあります。エラーメッセージの文言とあわせて、「どの操作をしたときに出たか」「ネットワーク共有か否か」「直前に何かが変わったか」を整理すると原因が絞りやすくなります。VBAコード内でのエラー処理ならErrオブジェクトのDescriptionプロパティで詳細を確認できます。

Q. 「最適化/修復」を実行したら、逆にデータが消えました。

Microsoftの公式ドキュメントには「修復の過程で、破損したテーブルのデータが切り捨てられる場合がある」と明記されています(Compact and repair a database | Microsoft Support)。修復の前に元ファイルをコピーしていなかった場合、取り戻す手段は限られます。今後のために、修復を実行する前には必ず元ファイルのコピーを別の場所に保存するのを手順に組み込んでください。

Q. 「パラメータが少なすぎます」が出るクエリを特定するには?

VBAからクエリを実行している場合、エラーが出たコードのCurrentDb.OpenRecordset("クエリ名")やDoCmd.OpenQueryの引数を確認してください。クエリ名が正しくても、そのクエリが参照するテーブル・フィールドが変わっている可能性があります。クエリをSQL文で開いてFROM句とフィールド名を手動で突き合わせると、どこに問題があるか見えやすくなります。

Q. エラーが出るたびにファイルが破損するのか心配です。

エラーメッセージが出ること自体はファイル破損とは別の話です。クエリのフィールド名誤りやパラメータ不足は、ファイルを傷めません。ファイル破損が起きやすいのは書き込み中にネットワークが切断された場合や、強制終了・電源断が重なった場合です。ネットワーク共有でAccessを使っている場合の破損リスクと予防策はAccessが複数人で使うと遅い・壊れる原因と、同時利用に強い移行先も参考になります。

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

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

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