• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:access 表形式のフォームの複数条件検索)

access 表形式のフォームの複数条件検索

このQ&Aのポイント
  • access 表形式のフォームの複数条件検索の方法について教えてください。
  • Comboボックスを2つ、3つ組み合わせた検索方法を知りたいです。
  • 現在は学年の検索ができていますが、他の条件を組み合わせる方法がわかりません。

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

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

No1です。 最後のIF文では、各コンボボックスやテキストボックス が未設定の場合なので、 If IsNull(Me!cmb学年) And IsNull(Me!cmb組) And IsNull(Me!tx名前) Then strFilter = "" End If のように、 strFilter = "" として、この場合はすべてを表示するというのもいいのですが、 その場合はすべて表示するというメッセージを出しておけば、 混乱がなくなるので、 If IsNull(Me!cmb学年) And IsNull(Me!cmb組) And IsNull(Me!tx名前) Then strFilter = "" MsgBox "条件が未設定なのですべてを表示します" End If のようにするのがいいかもしれません。 そのあたりは都合のいいように設定 してください。

その他の回答 (1)

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

ひたすら、条件を組み合わせるだけだと思いますが。 たとえば、 学年を表示するコンボボックスを「cmb学年」 組を表示するコンボボックスを「cmb組」 名前を書き込むテキストボックスを「tx名前」 とします。 えーっと、テキストボックスは別に他意があって テキストボックスにしたわけではありません。 コンボボックスでも構いません。 一応、各コントロールで、データが選択されているか、 あるいは書き込まれているかによって、その組合せ ほどIF文でフィルタに使う条件を設定します。 なお、各コンボボックスやテキストボックスの値は 文字型としています。数値型があるのならば、 少し変数を「"」などでの囲み方が違うので 補足をしてください。 Private Sub コマンド0_Click() Dim strFilter As String If Not IsNull(Me!cmb学年) And Not IsNull(Me!cmb組) And Not IsNull(Me!tx名前) Then strFilter = "[学年] Like '" & Me![cmb学年] & "' AND [組] Like '" & Me![cmb組] & "' AND [名前] Like '" & Me![tx名前] & "'" End If If Not IsNull(Me!cmb学年) And Not IsNull(Me!cmb組) And IsNull(Me!tx名前) Then strFilter = "[学年] Like '" & Me![cmb学年] & "' AND [組] Like '" & Me![cmb組] & "'" End If If Not IsNull(Me!cmb学年) And IsNull(Me!cmb組) And Not IsNull(Me!tx名前) Then strFilter = "[学年] Like '" & Me![cmb学年] & "' AND [名前] Like '" & Me![tx名前] & "'" End If If IsNull(Me!cmb学年) And Not IsNull(Me!cmb組) And Not IsNull(Me!tx名前) Then strFilter = "[組] Like '" & Me![cmb組] & "' AND [名前] Like '" & Me![tx名前] & "'" End If If Not IsNull(Me!cmb学年) And IsNull(Me!cmb組) And IsNull(Me!tx名前) Then strFilter = "[学年] Like '" & Me![cmb学年] & "'" End If If IsNull(Me!cmb学年) And IsNull(Me!cmb組) And Not IsNull(Me!tx名前) Then strFilter = "[名前] Like '" & Me![tx名前] & "'" End If If IsNull(Me!cmb学年) And Not IsNull(Me!cmb組) And IsNull(Me!tx名前) Then strFilter = "[組] Like '" & Me![cmb組] & "'" End If If IsNull(Me!cmb学年) And IsNull(Me!cmb組) And IsNull(Me!tx名前) Then Exit Sub End If Me.Filter = strFilter Me.FilterOn = True End Sub

RF0128
質問者

お礼

ありがとうございました。 うまく動作しました。これを基に勉強させていただきます。

関連するQ&A