• ベストアンサー

Accessのコンボボックスの”すべて”検索について

Access2000を使用しています。 検索フォームにおいて、コンボボックス内の項目を 選択し、コマンドボタンをクリックすることで検索出来 るように設定しています。 実現したいことはコンボボックス内の項目に"すべて" という項目を追加してこの"すべて"を選択して検索すると すべてのデータが表示されるようにしたいのです。 おそらく、関数やVBAを使用して設定するのではない かと思うのですが設定のやり方が分かりません。 よいアドバイスをお願いします。

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

  • ベストアンサー
  • yomo3
  • ベストアンサー率32% (88/269)
回答No.2

確認しとらんのですが、多分あってると思います。 リスト用のテーブルを以下のように変更します。 フィールド1(名前を仮に「表示用」とします) フィールド2(名前を仮に「検索用」とします) それぞれテキストです。 値は 表示用,検索用 すべて,* 検索1,検索1 検索2,検索2 ………,……… 最初の1レコード目がポイント。 で、コンボのプロパティを変更。 データ・連結列:2 書式・列数:2 書式・列幅:10cm;0cm (書式の2個は変更しなくても大丈夫な気がしますが、念のため) クエリの条件式を変更。 =Like([from!検索フォーム!cboフィールド名]) これでどうでしょう。

その他の回答 (2)

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.3

私は、"すべて"の代わりに「無指定」=空白というのを使っています。 値集合ソースは SELECT DISTINCT [T_マスタ].[分類] FROM T_マスタ; で得ます。 その上で、空白が指定された場合は  If Len(Me![ComBox_区分].Column(0)) = 0 Then  DoCmd.ShowAllRecords で全件表示がかかり、もちろん何かが選択されれば Else Me![Sub_リスト].Form.Filter = "区分 =" & "'" & Me![ComBox_区分] & "'" Me![Sub_リスト].Form.FilterOn = True End If という感じです。 この「=空白(Lenが0)」というのを、「="すべて"」というのに置き換えて考えれば、#2さんと同じやり方になりますね。 ご参考になれば幸いです。

  • yomo3
  • ベストアンサー率32% (88/269)
回答No.1

コンボボックスのリストは、テーブル/クエリリンク?SQL?リストを入力? >コマンドボタンをクリックすることで検索 は、どのようにしています? できるだけ詳しく、MacroやVBを使っているのならばそのスクリプトを可能な限り補足してください。 お望みの結果を出す方法はいくらでもあるので……。

ikuyama
質問者

補足

早速の御回答ありがとうございます。 「>コマンドボタンをクリックすることで検索  は、どのようにしています?」 の補足ですけれども以下のように設定しています。 ・コンボボックスのリストはテーブル/クエリで設定していて  リスト用のテーブルがあってこれをリンクさせていま  す。  "すべて"を追加するのはリスト数が4つなので値リスト  に変更すればすぐに追加できると思うのですが。 ・検索用のクエリを使用して抽出条件に[from!検索フォーム!  cboフィールド名]を設定しています。あいまい検索を  する必要はありません。 ・コマンドボタンはマクロで「レポートを開く」アクション  で設定しています。フィルタ名やWhere条件式は設定  していません。 以上のような設定をしています。 MacroやVBは初歩的なことは理解できます。 よろしくお願い致します。

関連するQ&A