質問: Access2010の「複数のアイテム」フォームに表示されるリストをフィルターして表示する機能を作りたいです。 最終的に、絞り込んだリストの名前一覧をVBA等で抜き出すなどの機能を作ろうと思っています。 項目数が少ないうちは手作業でテキストボックスを設置してVBAでFilterメソッドを使っても良いのですが、項目数が多くなると一つ一つ作るのはかなり手間がかかります。 絞り込みは非常によく使う機能だと思うのですが、簡単に作成する方法は無いのでしょうか? 理想としては、「分割フォーム」の下部分や「データシート」フォームに付いているフィルター機能を「複数アイテム」フォームの上部、またはフッターに搭載したいです。 特に[複数選択リストボックス]は選択形式のリストを複数選択する際に便利なので使いたいです。 ![この複数選択リストボックスが使いたい](https://teratail.storage.googleapis.com/uploads/contributed_images/89c3386c478b07bf15517e01b9e8b984.jpeg) ●名簿 | ID | 拠点ID | 氏名 | | --- | --- | --- | | 1 | 1 | 山田太郎 | | 2 | 1 | 鈴木次郎 | | 3 | 2 | 田中花子 | | 4 | 3 | 斎藤太郎 | ●拠点コード | ID | 拠点名 | | --- | --- | | 1 | 東京 | | 2 | 大阪 | | 3 | 沖縄 | ※「名簿」の「拠点ID」はルックアップで「拠点コード」の「ID」に接続
回答: 自己解決です。 下記手順で目的通りのフォームが作れました。 1. 一旦「分割フォーム」を作ってから、「詳細」(または「Detail」)の[プロパティ] → [可視]を [はい] にする。 2. 「フォーム」の[プロパティ] → [分割フォームの分割バー] を [いいえ] にする。 さらに、下記VBAコードでフィルターで抽出したレコードのみ取り出すことができました。 ``` Private Sub コマンド11_Click() Dim RS As Recordset Set RS = Me.Recordset Do Until RS.EOF Debug.Print RS!氏名 RS.MoveNext Loop End Sub ```