• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスvba if文の記述方法)

アクセスVBA IF文の記述方法

このQ&Aのポイント
  • アクセスVBAにおけるIF文の記述方法について教えてください。
  • 検索フォームにて氏名とカナを入力チェックし、未入力の場合には「未入力です」とメッセージを表示し、入力された場合には結果一覧のフォームを表示したいと考えています。
  • 検索ボタンをクリックした際に、氏名とカナの入力チェックを行い、条件に応じてIF文を記述したいです。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

No2、No3です。 Tagプロパティを使っているので、あっさり For Each mct In Me.Controls   If mct.ControlType = acTextBox Then     If mct.Tag = "Check" Then       If IsNull(mct) Then          MsgBox mct.Name & ("が未入力です")          Exit Sub       End If     End If   End If Next mct 以下No3のコードへ flg抜きでいいのではと。No3のコードの最後はflg抜きでした。 回答がごちゃごちゃしてすみません。

coconopapa
質問者

お礼

ベストアンサー決定したと思っており、回答に気づくのが遅れました。なるほどです!!何回も回答を頂き、質問内容から根本的な問題点の指摘改善までありがとうございました!!

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

先に回答すべきものを取り違えていました。 こちらを先に回答すべきでした。 未入力ならば先に入力を促す、ということで。 Private Sub 検索_Click() Dim mct As Control Dim flg As Boolean flg = False For Each mct In Me.Controls   If mct.ControlType = acTextBox Then     If mct.Tag = "Check" Then       If Not IsNull(mct) Then          flg = True       Else          MsgBox mct.Name & ("が未入力です")          Exit Sub       End If     End If   End If Next mct '入力チェックが終わったので結果一覧表示   Dim str As String   str = "[氏名] Like ""*" & Me!氏名 & "*"" And [カナ] Like ""*" & Me!カナ & "*"""   DoCmd.OpenForm "結果一覧", , , str End Sub

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

「氏名」「カナ」の両方の未入力チェックをするならば、 ループを完結しないと未入力項目を見落としてしまいます。 ループを途中で抜けると、たとえば、「氏名」が未入力で 「カナ」が入力されていると「結果一覧」が表示されます。 そこで、以下のようにすればいいのでは、と思いますが。 Private Sub 検索_Click() Dim mct As Control Dim flg As Integer flg = 1 For Each mct In Me.Controls  If mct.ControlType = acTextBox Then   If mct.Tag = "Check" Then    If Not IsNull(mct) Then     flg = flg * 1    Else     flg = flg * 0    End If   End If  End If Next mct If flg = 1 Then  Dim str As String  str = "[氏名] Like ""*" & Me!氏名 & "*"" And [カナ] Like ""*" & Me!カナ & "*"""  DoCmd.OpenForm "結果一覧", , , str Else  MsgBox ("未入力項目があります") End If これだと、「氏名」「カナ」のどちらに未入力があっても チェックできます。

回答No.1

× Exit Sub ○ Exit For

coconopapa
質問者

お礼

お恥ずかしい。 ありがとうござました。

関連するQ&A