【ACCESS Excelの連携】ACCESS特有のエラーについて解説

ACCESSとExcelの連携を利用できるようになると、ものすごく便利です。

しかし、新しい知識を得ると、その分、デバックも多くなります。

しかも、ExcelのVBAでは見慣れないデバックが発生します。

そんな時は、慌てず回避する方法を紹介します。

ACCESS特有のエラーについて解説

こんにちは。伊川(@naonaoke)です。

最近、競馬のデータベース作成について、どっぷりとハマっています。

それほど、楽しい作業ではないですが、作り上げていくことにハマっています。

ACCESSとExcelの連携はそれほど、難しいものではありません。

しかし、ACCESSで、クエリを作成して、いざ、Excelへ書き出そうと思うと、デバックが発生することがあります。

いきなり、画面に出るとびっくりします。

そんな時の回避方法です。

一応、ACCESSの原理原則も説明したいと思います。

このブログはこんな人にお勧め

今回のテーマ
  • ACCESSとExcelの連携を勉強している人
  • ACCESSを何となく利用している人
  • ACCESSとExcelの連携でデバックが発生して困っている人

このブログを読み終わるころには・・・・・・・

今回紹介する内容は、ネットでも検索できます。しかし、問題を解決することも重要ですが、そのデバックの原理原則を理解することも重要です。

デバックではなく、ACCESSの原理原則を理解しましょう。

デバックを怖がるな

VBAを作成していて、デバックが発生します。

そのデバックを解決することで、VBAのスキルがアップしていきます。

人にデバックを見られると恥ずかしいと思わないことです。

そもそも、デバックにすらならないコードは、動きません。

デバックが発生するだけ、マシです。

式に未定義関数、Nzがあります。

このデバックは、はっ?ってなます。

このデバックは、作成したクエリで、Nz関数を利用したことが原因です。



Nz関数とは?

Nz関数は、ACCESSのフィールドが、空白の時に、何かの文字を返します。

上の図であれば、空白であれば、0を返します。

このNz関数はExcelにはありません。

なぜ、Excelには搭載されていない関数なのでしょうか?

Excelは、空白があっても平気なのです。

セルというとても便利な機能を持った集合体だからです。

しかし、ACCESSは違います。

ACCESSのフィールドは、空白が嫌いなのです。

例えば、備考欄というフィールドがあるとします。

備考欄なので、フィールドが、空白でも実務上は、問題ありません。

しかし、備考欄でも、【無】と入力すべきだと思います。

ACCESSを利用している人なら、分かると思うのですが、全部、データが埋まっているデータベースは、気持ちがいいです。

式に未定義のNz関数がありますの回避方法

Nz関数をあきらめるしかありません。

回避する方法は2つあります。

ExcelのVBAで、IF構文を利用して、0をセルに代入

ACCESSのクエリで、Nz関数ではなく、iif関数で、0を入力します。

ACCESSのデータをExcelに転送するときは、Nz関数の利用に注意しましょう。

FROM 句の構文エラーです。

このデバックもあるあるです。


原因は、この部分です。

一見、正しいコードのように見えます。

しかし、見落としがちな部分があります。

気付かないと、6時間ハマりコースです。


これで、デバックは解消されます。

この、半角のあるなしで、エラーが発生します。

FROM 句の構文エラーは、他にも原因があります。

ハイフン(-)を利用しているときなどにも発生します。

だから、ハイフンは利用してはいけません。

単純に、ACCESSが嫌っているだけだと思います。

だから、ハイフンではなく、アンダースコアを利用しましょう。

電話番号-1ではなく、電話番号_1 としましょう。

また、不要な、カッコ【電話番号】などもやめましょう。

一旦、デバックが発生すると、どうにもなりません。

私が、ハマった例は、電話番号①です。

毎朝、必ずデバックが発生しました。

データベースの最適化で、改善するのですが、毎朝発生しました。

余談

まだまだ、エラーはありますが、今回はこの辺にします。

VBAを挫折する原因は、なんといっても、デバックの連続でしょう。

デバックを解消して、公開しても、また、デバック・・・・・

そんな気持ちで、完成したツールを世にだせない。

VBAのスキルアップの方法ですが、デバックを恐れないことです。

そして、自分で完成したと思ったら、世間様に公開しましょう。

公開したものに、デバックが発生したら、人前で、恥をかくことになります。

大いに恥をかいてください。

あなたは、プロではありません。

そして、その恥ずかしい、悔しい、絶対に次は、完璧なツールを作成してやる。

この気持ちが、明日へのマニュフェストなのです。

ここがポイント

ここがポイント
Function8.png
今回は、ACCESSとExcelの連携で発生したデバックについて紹介しました。ACCESSは、Excelよりもシビアです。原理原則を理解して、シビアなACCESSを理解しましょう。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

私が、体験したACCESSとExcelの連携についてのデバックは、このくらいです。

今後、もっと未知のデバックが発生するかもしれませんが、くじけないで頑張ります。

今回のサンプルファイルは、ありません。

サンプルファイルを購入希望の方はココをクリック
サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事