Microsoft Access 掲示板

複数検索項目の中に、複数選択可能なリストボックスを組み込みたい。 / 3

7 コメント
views
4 フォロー
3

リストボックス
名前 月検索
複数選択 標準 または 拡張
値集合タイプ 値リスト
値集合ソース 1;2;3;4;5;6;7;8;9;10;11;12

対象フィールド
フィールド名 月 (数値型)

として、下記のようなコードになります。

    Dim Itm As Variant, ItmList As String
    With Me.月検索
        If .ItemsSelected.Count > 0 Then
            For Each Itm In .ItemsSelected
                ItmList = ItmList & "," & .ItemData(Itm)
            Next
            strfilter = strfilter & " AND 月 In (" & Mid(ItmList, 2) & ")"
        End If
    End With

簡単に解説しておきますと、

リストボックスの ItemsSelectedプロパティには、選択されたアイテムのインデックスが格納されています。
For Each でインデックス(Itm)を一つずつ取り出します。
ItemData(Itm) でインデックスに対応するデータを取り出します。
取り出したデータを カンマ区切りで連結していきます。
最後に、AND 月 In ( ) に挿入して、下記のような条件式文字列にします。

AND 月 In (2,4,6,9,11)

2,4,6,9,11 を選択した場合

通報 ...
  • 4
    ただいま勉強中 2019/09/25 (水) 15:32:40 10d1a@96e2f >> 3

     ご回答頂きましてありがとうございます。
    思うように動作させることが出来ました。
    本当にありがとうございました。

    テキスト型にも運用できるようにしていきたいと思い以下のようにコード
    を変更してみました。
    テキスト型の項目に試してみると、抽出出来たのですが、
    この部分だけの変更でいいのか、よく理解できていません。😨

    ItmList = ItmList & ",’" & .ItemData(Itm) & “’”
    
    5

    はい、それで大丈夫ですよ(^-^)。😊

    6
    ただいま勉強中 2019/09/25 (水) 17:35:30 10d1a@96e2f >> 4

    😆
    ほっと安心できました。
    ありがとうございました。