Access

ACCDEファイルを作成できませんでしたの原因と対策

記事内に商品プロモーションを含む場合があります

通常、私は開発したAccessのプログラム(ツール)をリリースするにあたり、ACCDEファイルを作成してエンドユーザーから改変されることを防ぎます。

ある程度作り込んでいるのでちょっと分かる方にクエリやフォームのデザイン(プロパティ)、ソースコードを改変されると非常に困るからです。

ところが、時々ACCDEの作成で「ACCDEファイルを作成できませんでした」というエラーが表示されることがあります。

今回はこの原因と対策についてご紹介します。

ACCDEファイルを作成できませんでしたの原因

ACCDEファイルを作成する際に表示されるエラー

このエラーは通常、大きなデータベースを MDE ファイルにコンパイルする場合に起こります。

データベースをコンパイルするのに、多くの TableID 参照がテーブルごとに作成されます。

Access データベース エンジンでは一度に 2,048 までの空き TableID しか作成できません。

テーブル、マクロ、フォーム、レポートなどの多くのオブジェクトを含むデータベースを MDE ファイルとしてエクスポートする場合に上限を超える可能性があります。

Access データベース エンジンでデータベースを MDE にコンパイルするときに使用される TableID の数を正確に推定することはできませんが、VBA モジュールとフォームでそれぞれ 1 つの TableID を使用します。

そのため、データベースに 500 のフォームが含まれていて、それぞれのフォームの “HasModule/コード保持” プロパティに [はい] が設定されている場合には、1,000 の TableID が使用されることになります。

エラー詳細を見ると、プログラムが大きすぎる(フォームやテーブル、クエリ、レポートなどのオブジェクトが多い場合)時に発生するとあります。

が、「そんなに大きくないけど…」という時に同じエラーメッセージが表示されるので大変分かりにくいです。

ACCDEが作成できない原因

上記のように本当にサイズが大きすぎて作成できないこともありますが、他にもコンパイルエラーがある場合にもACCDEの作成に失敗します。

ACCDEファイルが作成できない原因
  1. ACCDBファイルのオブジェクトが多すぎる
  2. コンパイルエラーがある
  3. その他

ほとんどの場合が②コンパイルエラーがあるに該当するかと思います。

私はこれまでに①と③に起因するエラーになったことありません。

スポンサーリンク

ACCDEファイルを作成できませんでしたの対策

VBAエディタ画面からデバッグ→コンパイルを実行すると、コンパイルエラーが表示されます。

1つずつコンパイルエラーが出ている箇所をデバッグしてエラーをつぶしてしまえばACCDEファイルは作成できます。

【デバッグ→コンパイル】がグレーアウトしてクリックできない方は一旦プログラム中にDebug.printなど入れてみるとコンパイルが有効になります。

スポンサーリンク

まとめ

ACCDEファイルが作成できない原因は大抵「コンパイルエラー」です。

デバッグでコンパイルエラーをつぶしてから再度ACCDEファイルを作成しましょう!

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。