*

ウェッブ制作・パソコン

Width =px

ホーム > パソコン > MS Access >
複数のコンボボックスの連動

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)「部」を表示するコンボボックス

(1)「デザイン」 → 「コンボボックス」をフォームにドラッグ → 「次へ」

(2)テーブル「T11-部」を選択し「次へ」

 

(3)「 > > 」全てのフィールド → 「次へ」

(4)「全てのフィールド」が選択され「次へ」

 

(5)「部コード 」を選択し → 「次へ」

(6)「部のデータ」が表示される →「次へ」

 

(7)「後の作業で使用する 」を確認し → 「次へ」

(8)「部選択」(任意名)と入力 →「完了」

 

(9)コンボボックスが作成された後のフォーム

  非連結エリアのプロパティで名前を「部コンボ」と入力

(10)右端の下矢印をクリックすると部名が表示される。

 

2)「課」のコンボボックス作成

(1)課「コンボボックス」用クエリー作成

  このデザインは、後で「部コンボ」と連動するように修正します

(2)ステップ(1)の表示結果

(3)「デザイン」 → 「コンボボックス」をフォームにドラッグ → 「次へ」

(4)クエリー「Q12-課表示」を選択し「次へ」

(5)「 > > 」 → 全フィールドを選択 → 「次へ」

(6)全フィールドが選択され、→「次へ」

(7)昇順の設定 → 「次へ」

(8)「課コンボボックス」が表示される→「次へ」

(9)「課コード」を選択し → 「次へ」

(10)「後の作業で使用する」にチェック → 「次へ」

(11)「課選択」と入力し → 「完了」

(12」)「課コンボボックス」が作成された。

この「課コンボボックス」を以下の編集(プロパティを表示)

①名前 コンボnn → 課コンボ

②ラベル及び表示域の位置調整

③前景色(文字色)、背景色、幅や高さなど

以上の編集して表示したのが次の(13)

(13)「課コンボ」の右端下矢印をクリックして表示した状態

(14)「課コンボ」の表示調整

ウィザードで幅を指定していないので、適当な幅で作成されている。

2番目をそのままで、その他は非表示で「0cm」に変更。

(15)「課コンボ」表示が課名だけになった。

5.コンボボックスの連動設置

(16)「部」に連動するクエリー「Q12-課表示」のデザイン修正

抽出条件:部コード

(17)「F22-部課名簿」の「課コンボ」の「更新後処理」にマクロ作成

(18)マクロ記述

(19)「部コンボ」と連動した「課コンボ」の課名が表示がされる。

where条件式

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

★ 部コンボ」の「更新後処理」イベントプロシージャで、

  ①「課コンボ」をNull値に

  ②「課コンボ」を再クエリーする。