Access 複数のコンボボックスを連動し選択したデータに合致したレコードをフォーム表示する。
![](https:image/access/combo/C02-section-18.jpg)
要約
Office Accessで名簿データ(T01-名簿)からフォームの2つのコンボボックス所属「部選択」と「課選択」を連動し該当するデータだけ表示する方法です。
この事例は、テーブル「T01-名簿」のレコードから」の「部選択」コンボボックスから、その「部」だけの「課選択」コンボボックスを表示し、その「課」に該当するレコードだけを名簿表示する方法です。
1.元となるテーブル
![](https:image/access/combo/T01-member.jpg)
![](https:image/access/combo/T11-department.jpg)
![](https:image/access/combo/T12-section-n.jpg)
2.フォーム表示に必要なクエリー
1)「F22-帳票」用クエリー「Q21-部名簿」Step1:デザインと表示結果
![](https:image/access/combo/Q21-design.jpg)
![](https:image/access/combo/Q21-display.jpg)
2)「F22-帳票」用クエリー「Q22-部課名簿」Step2:デザインと表示結果
![](https:image/access/combo/Q22-design.jpg)
![](https:image/access/combo/Q22-display.jpg)
3)「課コンボ」用クエリー「Q12-課表示」:デザインと表示結果
![](https:image/access/combo/C02-section-01nn.jpg)
![](https:image/access/combo/C02-section-02.jpg)
このデザインは、5.コンボの連動設定で「部コンボ」と「課コンボ」を連動させるので、「部コード」に抽出条件を記述することになります。
3.フォームの作成
![](https:image/access/combo/F22-members.jpg)
![](https:image/access/combo/F22-members-s1.jpg)
このフォームは、フォームウィザードで作成し、デザインをプロパティで修正したものです。ウィザードの手順は、
Step | 説 明 |
1) | 「作成」メニュー → 「フォームウィザード」 |
2) | 元となるクエリー:「Q22-部課名簿」を選択し、全データを選択する。右図がこの時の画像。 |
3) | 「次へ」のボタンをクリック |
4) | レイアウト設定で、「表形式」を選択し、「次へ」をクリック |
5) | フォーム名を修正し「フォームのデザインを編集する」にチェックを入れ「完了」ボタンをクリック。 |
4.フォーム「F22-部課名簿」をデザインで開きコンボボックス設置
1)「部」を表示するコンボボックス
(14)「課コンボ」の表示調整
ウィザードで幅を指定していないので、適当な幅で作成されている。
![](https:image/access/combo/C02-section-15.jpg)
2番目をそのままで、その他は非表示で「0cm」に変更。
↓
(15)「課コンボ」表示が課名だけになった。
![](https:image/access/combo/C02-section-17n.jpg)
5.コンボボックスの連動設置
(17)「F22-部課名簿」の「課コンボ」の「更新後処理」にマクロ作成
![](https:image/access/combo/C02-section-21.jpg)
(20)「部選択」を変えた時、それに対応した課が選択されるよう「部コンボ」にイベントプロシージャを挿入する。
![](https:image/access/combo/C02-section-23.jpg)
1 2 3 4 |
Private Sub 課コンボ_AfterUpdate() Me!課コンボ = Null Me!課コンボ.Requery End Sub |
★ 部コンボ」の「更新後処理」イベントプロシージャで、
①「課コンボ」をNull値に
②「課コンボ」を再クエリーする。