• ベストアンサー

Access2000 複数条件の接続

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

質問者が選んだベストアンサー

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.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

aikun
質問者

お礼

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

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

#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

  • nota55
  • ベストアンサー率37% (138/366)
回答No.2

どれか一つでもNullなら,という判別条件であれば IsNull(hoge | foo | bar) = ..... なんてのはダメ? MsgBoxのメッセージを未入力のフィールド毎に 変えるとなるともう一工夫必要ですが。 (その場合は素直にIf...then ...ElseIfを使う方がいいかも)

aikun
質問者

補足

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

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.1

エラーメッセージの出し方によって、変わってきますが、 とりあえずメッセージを出した後に、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

aikun
質問者

お礼

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

関連するQ&A