Microsoft Access 掲示板

リストフォームの絞り込み

4 コメント
views
4 フォロー

現在、帳票フォームのヘッダーでリストの各項目に対してコンボボックスを設置し、下記フィルタリングを行うようにしています。

Private Sub cbo内外検索_AfterUpdate()
    DoCmd.ApplyFilter "", "[内外]= [Forms]![F_管理リスト]![cbo内外検索]", ""
End Sub

そこで例えば上記「内外」コンボボックスで「内」に絞り込んだ状態で別のコンボボックスで絞り込むと、一旦初期化されて全体のデータからの絞り込みになります
これを重ねていく方法はありますでしょうか?

作成: 2021/02/17 (水) 21:51:07
通報 ...
1

「別のコンボボックス」の名前を「cbo項目検索」、対象フィールド名を「項目」と仮定して。

Sub SetFilter()
   Dim stFilter As String
   
   If Me.cbo内外検索 <> "" Then
       stFilter = " And [内外]=[cbo内外検索]"
   End If
   If Me.cbo項目検索 <> "" Then
       stFilter = stFilter & " And [項目]=[cbo項目検索]"
   End If

   DoCmd.ApplyFilter , Mid(strFilter, 6)
End Sub

Private Sub cbo内外検索_AfterUpdate()
    SetFilter
End Sub

Private Sub cbo項目検索_AfterUpdate()
    SetFilter
End Sub
2

早速のご回答ありがとうございます。
試す前に再度質問してしまい申し訳ないのですが、
この、Sub SetFilter()を使えば

①例えば項目を先に選択した状態で、結果を表示した状態で内外を選択しても有効でしょうか?
②実際はもっと選択肢が多い状態ですが、教えていただいた内容で適当な順番で選択肢分増やしていけば大丈夫でしょうか?

以上よろしくお願いいたします。

3

①②ともOKのはずですのでまずは試してみてください。
それでうまくいかなければ、その時にどのようにしてどのようにうまくいかないか質問してください。

4

3ヶ月越しで申し訳ありません。うまくいきました!
(念のためお伝えするとご記載いただいた内容につきまして、strFilterとstFilterが混ざっているようです)

大変たすかりました。教えていただき、ありがとうございました。