• 締切済み

VB6.0において

今、OS windows2000/VB6.0を使用してプグラムをしています。プログラムが完成し、コンパイルも通るのですが、項目で会社名というのが抜けている時だけ、「実行時エラー'94' NULLの使い方が不正です。」というウィンドウが出てきて、OKを押すと画面が閉じてしまうのですが、このOKを押した時にメニュー画面に戻すようにしたいのですが、自分では「実行時エラー'94' NULLの使い方が不正です。」などという文言は書いていないので、VBに元から記述されている物だと思うのですが、どこに実行時エラーの事が書いてあるのかわかりません。 もし、わかる方がおりましたら、教えていただきたいと思います。よろしくお願いします。

みんなの回答

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.4

会社名って言うぐらいですから、業務で使うんでしょうね。 >どこに実行時エラーの事が書いてあるのかわかりません。 VBアプリでは、実行時エラーの場合 このようなエラーメッセージを出力して、勝手に強制終了してしまいます。 ですから、#2さんの指摘されているように エラーの起こりうるプロシージャにエラートラップを掛けるのが普通です。 こんな感じで。 Private Sub Hoge() On Error Goto Err_Trap: '処理をここで記述 Exit Sub 'これが無いとエラーでないときもエラー処理してしまう Err_Trap: Msgbox Err.Description End Sub ただし、エラーは起こらないようコーディングするのが原則です。 この場合だとMsgBox関数でエラーの文言を出力していますが、これはあくまでデバッグのためだと考えてください。 そういう意味でも、#3さんが指摘されていますが 基本的な項目のバリデーションチェックをするべきです。 (会社名が入力されていなければ処理しないなど)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.3

その手のエラーならエラー処理を追加してエラーの発生を抑制するのではなく、そもそも根本的に修正すべきことかと思いますが。 まぁ単純に「会社名」が空白だった時に、仮の値を入れるとかですむ問題だったりするのではないかなと。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.2

Go To」文でエラートラップを設けて「Err.No」(この場合は'94')で「If~Then」または「Select Case」文で振り分けて、「Err.No = 94」で引っかかったら、メニュー画面に遷移させる処理をして「Exit Sub」で抜けるって処理をしてみてはいかがですか? ただ、項目「会社名」のバリデーションチェックは大丈夫でしょうか?

回答No.1

簡単に言うと そのプログラムはバグってます。 マニュアルで「ERROR」もしくは「ERR」で探してみてください

関連するQ&A