店員も客も斜め上を行くデパートの福袋

早速ですが、アクセスVBAでエラー処理のコードを作成していますが、メッセージボックス出力後に、
"実行時エラー13:型が一致しません"
とでてきます。
おそらくデータが入っていないのにもかかわらず、次の処理を続行してしまうためにこのようなことが起こっているのではないかと思います。どのように処理をすればよいのでしょうか?
宜しくお願いします。

A 回答 (3件)

No.2の方の答えが正しいです。



MsgBoxを表示させた後に、
Exit Subをつけないと、処理がそのまま続行されてしまうので、
エラーが発生してしまいます。

なので、データのチェックを行い、
エラーメッセージを表示した後に、
必ず、ExitSubをつけましょう。
    • good
    • 0

これでどうなるかわかりませんが、



'データ名が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbDTL]) Then
MsgBox "データ名[左]を入力してください"
End If

などの入力チェックに

'データ名が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbDTL]) Then
MsgBox "データ名[左]を入力してください"
Exit Sub
End If

というようにExit subを入れないとプログラムは進んでいってしまうんじゃないですかね。
    • good
    • 0

うーん。

。。難しい質問ですね。

質問自体は、すごく単純な質問なのですが、
実際のプログラムを見てみないと、返答ができません。

例えばですが、
本来であれば処理を実行する前に、処理するデータが存在するかどうかをチェックして、
存在しないのであれば、処理をExitするだけだと思います。

プログラムを載せる事はできますか?

この回答への補足

kouta52さんへ
プログラムの内容は下記のとおりです。
宜しくお願いします。

**************************************************

'ラベル作成登録画面の左をクリック
Private Sub 左_Click()

'データ名が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbDTL]) Then
MsgBox "データ名[左]を入力してください"
End If

'病院名が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbHPL]) Then
MsgBox "顧客名[左]を入力してください"
End If

'曜日が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbYBL1]) Then
MsgBox "曜日1を入力してください (予備の場合は空白を選択してください)"
End If

'曜日が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbYBL2]) Then
MsgBox "曜日2を入力してください (予備の場合は空白を選択してください)"
End If

'曜日が入力されているかどうかチェック
If IsNull([Forms]![ラベル作成登録画面]![cmbYBL3]) Then
MsgBox "曜日3を入力してください (予備の場合は空白を選択してください)"
End If

'ラベルレポートを開く
DoCmd.OpenForm "左"

With [Forms]![左]![txtDTL1]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbDTL]
End With

With [Forms]![左]![txtDTL2]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbDTL]
End With

With [Forms]![左]![txtDTL3]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbDTL]
End With

With [Forms]![左]![txtHPL1]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbHPL] + " 御中"
End With

With [Forms]![左]![txtHPL2]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbHPL] + " 御中"
End With

With [Forms]![左]![txtHPL3]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbHPL] + " 御中"
End With

With [Forms]![左]![txtYBL1]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbYBL1]
End With

With [Forms]![左]![txtYBL2]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbYBL2]
End With

With [Forms]![左]![txtYBL3]
.SetFocus
.Text = [Forms]![ラベル作成登録画面]![cmbYBL3]
End With

End Sub

補足日時:2005/01/02 13:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A