Microsoft Access Club >VBA物語 >このページ >次頁 < 前項  サイト内検索


エラー処理_エラーの種類:VBA物語09



おさらいですが、Resumeを用いた代表的なプログラミングの方法は下記のとおりでした。
 

On Error ………エラー: --------@
    省略 --------A
    Exit Sub

戻る:
    省略 --------B
    Exit Sub
エラー:
    エラー処理 (省略) - -----C
    Resume 戻る
    Exit Sub

@:エラー処理宣言をできるだけ上位に記述します。

A:この段階でエラーが発生すると、Cの「エラー処理(省略)」に実行が移ります。

C:エラー処理が始まり、最後の「Resume 戻る」によって、Bへ実行が移ります。

B:処理を実行し、Exit Sub でこのプロシージャーを終了します。

エラー発生を怖がってはいけません。最初の内はいろいろと発生するものです。エラーを大別すると、以下の2通りに分類できます。

  1. プログラミングエラー
  2. コンパイルエラー

プログラミングエラー

今までお話してきたのは全てプログラミングエラーです。このエラーはプログラミングを実行し、ある条件下で発生するものです。例えば、

  1. aが0以上なら問題なく実行されるが、aが0未満ならエラーが発生する。
  2. テキストボックスに文字列を代入すれば問題なく実行されるが、テキストボックスにNull値を代入するとエラーが発生する。

このようなエラーを云います。

コンパイルエラー

コンパイルエラーは、文法的に誤っているときに発生します。プロシージャの途中ではなく実行する前に発生するのが特徴です。

下記のDoCmdオブジェクトの構文は、frm_sampleフォームを開く正しい構文です。

Docmd OpenForm "frm_sample" 

下記のDoCmdオブジェクトの構文は、誤った記述になっています。

Docmd Open "frm_sample"

この構文を実行するとコンパイルエラーが発生し、下記のようなエラーメッセージが表示されます。このようにコンパイル時にエラー が発生するのが、コンパイルエラーです。

コンパイルする

コンパイルするということは、マシン語に変換することを言います。コンパイルすることなくプロシージャを保存することもできます 。しかし、プロシージャを実行する前に必ずコンパイルされますので、その時点でエラーメッセージが表示され てしまいます。このような事態を避ける意味からも、プロシージャを保存する前に手動でコンパイルされることをお勧めします。

プロシージャ記述時の留意点

フォーム名やレポート名をプロシージャー内に記述する場合、オブジェクトをダブルクォーション(")で囲 みます。Accessは、ダブルクォーション内部を一つの固有名詞と判断しますから、存在しない名前であっても、コンパイルエラーは発生しません。この場合は、 プロシージャ実行時にプログラミングエラーが発生します。

コンパイルの方法

コンパイルは、メニューバーのデバッグにあるコンパイルをクリックすると実行できます。

2001/10/06

ページの先頭へ 前ページへ戻る


エラー処理_エラーの種類:VBA物語09


 

-Microsoft Access Club-