ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

質問させていただきます。
フォーム上のコマンドボタンをクリックすると、ある処理が実行されるのですが、その際、いくつかの(3つぐらい)の項目が未入力の場合、処理を行わず、入力を促すメッセージボックスを表示したいのですが・・・
項目が1つであれば、
If IsNull(Me![名前]) = True Then
MsgBox "○○ 以下省略
で良いと思うのですが、2つ以上ある場合の記述方法がわかりません。
以上、よろしくお願いします。

A 回答 (4件)

#1です。



>条件をクリアした場合の処理がたくさんあるので、
>できれば1度の条件で判断させていと思っています。


意味がわからないです。

「コードの行数が増えて見難くなるから、1度の条件で判断したい」

ということですか?

そうだとしたら、チェックの部分だけ、外に出してしまえばいいことです。


Private xxxClick()

 If CheckForm() = True Then
  Exit Sub
 End IF

 'これ以降条件クリア時の処理


End Sub


Private Function CheckForm()

 CheckForm = False

 If 条件1 Then
  MsgBox メッセージ1
  Exit Function
 End If

 If 条件2 Then
  MsgBox メッセージ2
  Exit Function
 End If

 If 条件3 Then
  MsgBox メッセージ3
  Exit Function
 End If

 CheckForm = True

End Function
    • good
    • 0
この回答へのお礼

その通りでした(勘違いしておりました。ごめんなさい)。
ご指摘の通りでうまくいきました。
ありがとうございました。

お礼日時:2004/07/02 13:32

#1の方のいわれるとおり項目毎にメッセージをだすか



Dim ERNO As Integer
If Me![名前] Is Null Then ERNO = 1 Else ERNO = 0
If Me![性別] Is Null Then ERNO = ERNO + 2
If Me![住所] Is Null Then ERNO = ERNO + 4
Select Case ERNO
Case 1
MsgBox "名前を入力..."
Case 2
MsgBox "性別を入力..."
Case 3
MsgBox "名前と性別を入力..."
Case 4
MsgBox "住所を入力..."
Case 5
MsgBox "名前と住所を入力..."
Case 6
MsgBox "性別と住所を入力..."
Case 7
MsgBox "名前と性別と住所を入力..."
Case Else
処理の実行
End Select
    • good
    • 0

どれか一つでもNullなら,という判別条件であれば


IsNull(hoge | foo | bar) = .....
なんてのはダメ?

MsgBoxのメッセージを未入力のフィールド毎に
変えるとなるともう一工夫必要ですが。
(その場合は素直にIf...then ...ElseIfを使う方がいいかも)

この回答への補足

回答ありがとうございます。
>IsNull(hoge | foo | bar) = .....
これはどういう意味ですか・・・?

補足日時:2004/07/02 12:10
    • good
    • 0

エラーメッセージの出し方によって、変わってきますが、


とりあえずメッセージを出した後に、exit subで抜けたらどうですか?

If 条件1 Then
  MsgBox メッセージ1
  Exit Sub
End If

If 条件2 Then
  MsgBox メッセージ2
  Exit Sub
End If

If 条件3 Then
  MsgBox メッセージ3
  Exit Sub
End If
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
条件をクリアした場合の処理がたくさんあるので、できれば1度の条件で判断させていと思っています。

お礼日時:2004/07/02 12:07

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