Access 複数のコンボボックスを連動し選択したデータに合致したレコードをフォーム表示する。

要約
Office Accessで名簿データ(T01-名簿)からフォームの2つのコンボボックス所属「部選択」と「課選択」を連動し該当するデータだけ表示する方法です。
この事例は、テーブル「T01-名簿」のレコードから」の「部選択」コンボボックスから、その「部」だけの「課選択」コンボボックスを表示し、その「課」に該当するレコードだけを名簿表示する方法です。
1.元となるテーブル



2.フォーム表示に必要なクエリー
1)「F22-帳票」用クエリー「Q21-部名簿」Step1:デザインと表示結果


2)「F22-帳票」用クエリー「Q22-部課名簿」Step2:デザインと表示結果


3)「課コンボ」用クエリー「Q12-課表示」:デザインと表示結果


このデザインは、5.コンボの連動設定で「部コンボ」と「課コンボ」を連動させるので、「部コード」に抽出条件を記述することになります。
3.フォームの作成


このフォームは、フォームウィザードで作成し、デザインをプロパティで修正したものです。ウィザードの手順は、
Step | 説 明 |
1) | 「作成」メニュー → 「フォームウィザード」 |
2) | 元となるクエリー:「Q22-部課名簿」を選択し、全データを選択する。右図がこの時の画像。 |
3) | 「次へ」のボタンをクリック |
4) | レイアウト設定で、「表形式」を選択し、「次へ」をクリック |
5) | フォーム名を修正し「フォームのデザインを編集する」にチェックを入れ「完了」ボタンをクリック。 |
4.フォーム「F22-部課名簿」をデザインで開きコンボボックス設置
1)「部」を表示するコンボボックス
(14)「課コンボ」の表示調整
ウィザードで幅を指定していないので、適当な幅で作成されている。

2番目をそのままで、その他は非表示で「0cm」に変更。
↓
(15)「課コンボ」表示が課名だけになった。

5.コンボボックスの連動設置
(17)「F22-部課名簿」の「課コンボ」の「更新後処理」にマクロ作成

(20)「部選択」を変えた時、それに対応した課が選択されるよう「部コンボ」にイベントプロシージャを挿入する。

1 2 3 4 |
Private Sub 課コンボ_AfterUpdate() Me!課コンボ = Null Me!課コンボ.Requery End Sub |
★ 部コンボ」の「更新後処理」イベントプロシージャで、
①「課コンボ」をNull値に
②「課コンボ」を再クエリーする。