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としての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら