<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97超入門>絞込みの仕組みを作る
 基本のクエリー サブフォームで 表形式のフォームで コンボボックスで 全件表示 コンボボックスが片方空っぽでも 2段階の絞り込み



■2段階の絞り込み

これはちょっとテーブルの構造が変わり、新しいフィールドがひとつ増えます。

そうですねえ。。。
[産地]というフィールドがあったとして、まず[種類]で「くだもの」を選んだら、「くだもの」の産地をさらに絞り込んでふたつめのコンボに表示するようにしてみましょうか。
これは、コンボボックスの仕組みと再クエリーの意味を理解しておいでなら、すぐできますよ。


わたしは、最初に作ったサブフォームの方のフォーム、けっこういろいろいじっちゃったんで、ふたつめに作った[フォームその2]でやろうと思います。
基本的にやることはサブフォームも変わらないんで、みなさんはお好きな方で試してみてください。

[フォームその2]が基にしているのは[クエリーその2]なので、まずこのクエリーをなおします。

なおすといっても、ランクじゃなくて[産地]を抽出条件にできるようになおすだけです。

んで、フォームの方も、テキストボックスじゃなくてコンボボックスにします。サブフォームの方使ってる方は・・・ここはコンボになってますよね。
あ、ふたつめの右の方のコンボボックス、名前が「ランク」のままだとちょっとややっこしいかもしれないんで、できたら名前を「産地」とかに変えておいた方がいいと思います。

わたしはこのフォームの中では、コンボボックスの名前を「条件1」「条件2」にしてあるんで、まあこのままでもいいかなー・・・。


問題はふたつめのコンボボックスの方の抽出内容。

こっちを、ひとつめのコンボボックスで選んだ内容によって変えたいんですよね。
そこで、こんな感じにします。[産地]の他に[種類]も選んで、
抽出条件欄にひとつめのコンボボックスの名前を入力します。

わたしは上のようになりました。みなさんはみなさんがお作りになったフォーム名、コンボボックス名に合わせて入力してください。
formsのまわりのカギカッコは大体自動的につきますから、つづりだけ間違わないよう入力すれば問題ないでしょう。


で、これがカンジン。コンボボックスの中身といえ、「条件1」の内容が変わっても即座に変わってはくれないです。
ふたつめのコンボボックスを再クエリーしないと・・・。

いつ再クエリーするかは、みなさんもうおわかりですよね。

ひとつめのコンボボックスの更新後処理イベントで、ですね。


で、いかがでしょう。ひとつめのコンボボックス選んで、ふたつめのコンボボックス選んだら・・・・
くだものの産地、ねりものの産地、やさいの産地がそれぞれ絞り込まれて出てきます?

コンボボックスと抽出条件、再クエリーの仕組みさえマスターすれば、3段階でも4段階でも絞り込むことができるはずです。
ぜひ活用なさってください。