<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>コンボボックスを使った絞込みのしくみ
   



みっつめのコンボボックスを作る

あとは、これの繰り返しなんですけどね。
みっつめのコンボ、いってみましょう。
ふたつめのコンボと手順は一緒なので、ポンポンポンといきますよ。

まず、3つめのコンボを作ります。わたしのは、名前は「コンボ4」になりました。

コンボ4のプロパティを設定します。
「値集合ソース」からいきましょう。

[市区町村テーブル]を選びます。

フィールドを選んで、抽出条件欄に フォームという名のフォームの中のコンボ2という名のコントロールの値 という意味の抽出条件を書きます。

市区町村コード順に並んでいるほうが都合がいい場合は↓、あいうえお順で探したほうがよさそうな場合は↑ という具合にしておくとよいでしょう。

で、クエリビルダを閉じます。

列数や列幅を調節します。
市区町村名ですから、そんなに長いのはないと思うんで、3センチくらいあれば表示できるんじゃないかと思うんですけどね。

あと、リスト行数なんかも調整しておくといいかもしれないですね。10とか15とか、多めにしておくといいかもしれないですよ。


しあげに、コンボ2の更新後、再クエリさせます。
コンボ2のプロパティ表示に切り替えて、

「更新後処理」プロパティをクリックして、ビルドボタンをクリックして、

コードビルダを選んで、

VBEを使って「コンボ4を再クエリしなさい」という命令コードを書いて、

おわりです。
どうでしょう。何と何がどうつながっているか、そこんとこが大切ですよ。



フォームを保存して、またまた一呼吸・・・。

じゃあ、実験です。フォームビューに切り替えて、コンボボックスを使ってみましょう。

上から順番にコンボから値を選んでいくと、だんだんと絞り込まれて、必要な市区町村名が表示されます??

別の都道府県を選んだら、市区町村の一覧も変わると思いますけれども、その辺も何度かテストしてみてください。

順番に再クエリするようにしてますから、「地域」を選びなおしただけじゃ、「市区町村」は変わってないですよね。
まあ・・・モノにもよりますけど、今回の場合、「その地域に属する市区町村名」の一覧を出したって、あんまり役に立たないと思うんですよ。
だから、市区町村の一覧は、都道府県を選択して初めて、必要な情報が出てくる、って考え方でいいんじゃないかと思うんです。

各コンボに、どういう情報が出てほしいのか、は、SQLのところを工夫すればいろいろ考えられます。
こうして実際にフォームビューでコンボを動かしてみて、初めて気づくこともあると思うんです。
でも、どういう場合でも、基本的な段取りは変わらないので、いろいろなパターンに対応できるよう、今までの流れを理解しておいてくださいね。