Microsoft Access 掲示板

YES/NO型の複数条件検索

2 コメント
views
4 フォロー

テーブルをコントロールソースとした分割フォーム上で、テーブルにある3つのYes/No型のフィールドがあります。
これらのフィールド名が"チェックA"、"チェックB"、"チェックC"となっています。

フォーム上にチェックボックス"チェックA検索"、"チェックB検索"、"チェックC検索"を設け、フィルタをかけます。
それぞれ単独でフィルタリングする場合は、

Me.Filter = "チェックA=" & Me.チェックA検索
Me.FilterOn = True

でできたのですが、これら3つを組み合わせたフィルタリングをするには、どう記述したらよいでしょうか?
"チェック*検索"側は、True、False、Nullのそれぞれいずれかの状態で、ボタンをおすとフィルタリングできるようにしたいです。

どなたかご教授下さい。

hassy-hhh
作成: 2020/12/11 (金) 14:31:40
通報 ...
1
hiroton 2020/12/11 (金) 15:16:11 09202@f966d

フィルタにはSQLのWHERE句に相当する文字列を指定します
WHERE句の書き方参考:【SQL入門】WHEREで検索条件の指定方法をわかりやすく解説

組み合わせてどんなデータを表示したいのかによってANDでつないだりORでつないだり、NULLのデータで絞り込みたいのであれば[フィールド] IS NULLとする必要がある。あたりを抑えておけば最低限の記述はできるようになります

2
maharajah 2020/12/11 (金) 15:18:06 cb55f@f6500
Public Sub 検索ボタン_Click()

  Dim filterA As String
  Dim filterB As String
  Dim filterC As String 

  filterA = "チェックA=" & Me.チェックA検索
  filterB = "チェックB=" & Me.チェックB検索
  filterC = "チェックC=" & Me.チェックC検索

  Me.Filter = "( " & filterA & " ) and ( " & filterB & _
  " ) and ( " & filterC & " )"

  Me.FilterOn = True

End Sub

とかでどうでしょうか。
もっといい方法があるかもしれません。