コンボボックスの連携
概要:
フォーム上でふたつのコンボボックスを配置し、ひとつのコンボボックスのリストから
選択された値を基にもう一方のコンボボックスのリストデータを絞り込む方法です。
ここでは会社名を選択してその会社に所属する社員を表示する例を解説します。
1.テーブル設計
テーブルを次の通り作成します。
・会社
フィールド゙名 |
データ型 |
サイズ |
インデックス |
会社ID |
長整数型 |
|
はい (重複なし) |
会社名 |
短いテキスト |
10 |
|
・社員
フィールド名 |
データ型 |
サイズ |
インデックス |
社員ID |
長整数型 |
|
はい (重複なし) |
社員名 |
短いテキスト |
10 |
|
所属会社 |
長整数型 |
|
|
2.フォーム設計
・Fコンボ連携
[作成]タブの[フォーム]グループから<フォームデザイン>ボタンをクリックします。
無地のフォーム上に2つのコンボボックスを新規作成します。
プロパティを以下の様に設定します。
[会社ID]コンボボックス
名前.............会社ID
値集合タイプ.......テーブル/クエリ
値集合ソース........会社
列数.............2
列見出し.........いいえ
列幅.............0cm;2cm
連結列...........1
リスト行数..........8
リスト幅............自動
更新後処理.......[イベント プロシージャ]
Private Sub 会社ID_AfterUpdate()
Me!社員ID.Requery End Sub
※会社IDを選択したあとに2つ目のコンボボックス[社員ID]値集合ソースを再クエリします。
[社員ID]コンボボックス
名前.............
|
社員ID
|
値集合タイプ.......
|
テーブル/クエリー
|
値集合ソース........
|
SELECT 社員.社員ID, 社員.社員名, 社員.所属会社 FROM 社員 WHERE (((社員.所属会社)= [FORMS]![Fコンボ連携]![会社ID]));
|
列数.............
|
3
|
列見出し.........
|
いいえ
|
列幅............
|
0cm;2cm;0cm
|
連結列...........
|
1
|
リスト行数..........
|
8
|
リスト幅............
|
自動
|
※値集合ソースとなるクエリは[会社ID]コンボボックスで選択された会社IDで抽出します。
※ DownLoad
の「cmbex.zip」で動作を確認して下さい。
戻る
|