Microsoft Access Club >SampleFile >インデックス >このページ >次頁 < 前項  サイト内検索


コンボボックス作成の応用講座-1:SampleFile192



今回は、コンボボックスの応用編に突入しましょう。 フォーム機能を理解するにはコンボボックスをまずマスターしなくてはいけません。コンボボックスを自由に活用できればシステム構築に大きく寄与します。

複数のコンボボックスを連携する

今回、ご紹介する応用編の一番手は、コンボボックス同士の連結がテーマです。下図のフォームをご覧下さい。 フォーム上にコンボボックスが左右に2個並んでいます。左コンボボックスはcon_No1、右コンボボックスはcon_No2と命名しています。

コンボボックスの動き

左コンボボックスにマウスのカーソルが移動すると、上図のようにプールダウンが始まり、マウスでもキィーボードでも値を選択することができます。次に、その選択に応じて右コンボボックスに は関連する値が表示されます。

プールダウンを可能にするプロシージャの作成

コンボボックスのフォーカス取得後イベントにDropdownメソッドを記述するだけです。
Private Sub con_No1_GotFocus()

    'フォーカスが移ると同時に、ドロップダウンさせる。
    Me.con_No1.Dropdown

End Sub
解説

左のコンボボックスから東京を選択すると、右コンボボックスには、カバン、自動車、財布などが一覧表示されます。試しに、カバンを選択し「実行」のコマンドボタンをクリックすると、下記のような一覧フォームが開きます。

テーブルの作成

テーブル(テーブル名tbl_sample)を作成します。

ID 都道府県 商品名 金額
1 東京都 カバン  \2,889,930
2 大阪府 自動車 \445,600
3 愛知県 財布 \443,000
4 福岡県 飲料水 \1,999,630
5 愛知県 お菓子 \233,000
6 東京都 自動車 \211,000
7 東京都 財布 \3,000,280
8 大阪府 カバン \2,119,000
9 福岡県 お菓子 \33,000
10 福岡県 財布 \231,500
11 大阪府 お菓子 \1,255,200
12 愛知県 自動車 \886,000
13 東京都 飲料水 \998,220
14 沖縄県 さとうきび \223,100
15 北海道 しゃけ \33,400
16 東京都 石鹸 \2,994,430
17 大阪府 洗剤 \88,440
18 福岡県 めんたいこ \773,110
19 愛知県 中華麺 \550,030
20 沖縄県 泡盛 \334,550
21 北海道 毛がに \99,440

左コンボボックスの値集合ソースの設定

左コンボボックスの値集合ソースには、下記のような集計クエリを作成します。そして、集計欄に「カウント」を選択し、 テーブルフィールドの件数の多い順に都道府県名を並べています。

右コンボボックスに左コンボボックスの情報を送信する

右コンボボックスに左コンボボックスの情報を送信する必要があります。これを実現することで、コンボボックスが連携をとることができます。

重要
  • コンボボックスにおいて、選択された値をキックバックする仕組みは、コンボボックスプロパティにある連結列欄の設定によります。

下記の図は、左コンボボックスのプロパティです。連結列欄に 1 と記述します。

この意味は、下記クエリ内のフィールドの位置関係にあります。今回、右コンボボックスに送信する値は都道府県名です。例でいいますと、左から1番目にある都道府県フィールドデータになります 。試しに、連結列欄に0や2を入力して下さい。右側のコンボボックスには何も表示されなくなります。

右側のコンボボックスの値集合ソースの設定

では、右側のコンボボックスの値集合ソースを見ていきましょう。選択クエリを作成します。右コンボボックスでは、左コンボボックスで選択された値を如何に取り出すのか工夫します。そこで、上記のように抽出条件欄に左コンボボックス名を指定し ます。この式を記述することで、二つのコンボボックスは連動します。

留意点

反映させるためには、右コンボボックスの再クエリを行います。

左コンボボックスの更新後処理イベントプロシージャの作成

左コンボボックスの更新ご処理イベントに以下のプロシージャを記述します。左コンボボックスで値が選択されれば、直ちに右のコンボボックスの再クエリを行い、マウスのカーソルを移動させます。

Private Sub con_No1_AfterUpdate()

    '更新後、右コンボボックスを再クエリし反映させる。
    DoCmd.Requery "con_No2"
    DoCmd.GoToControl "con_No2"

End Sub
留意点

コンボボックスの連携では、「連結列」と「値集合ソース」の取り扱いが焦点となりますので、皆さん方の備忘録に書き込んで置いてください。

関連ページ

ページの先頭へ 前ページへ戻る

 


コンボボックス作成の応用講座-1:SampleFile192


 

-Microsoft Access Club-