アクセスVBA2つのコンボボックスを連動させて表示させたい!

 

アクセス担当のまみです。

 

コンボボックスって条件を絞り込む時に使ったりしますね。

1つ目のコンボボックスで条件を絞り込んで、条件に合ったものを2つ目のコンボボックスに表示させる。

1つ目のコンボボックスの表示まではすんなりできるけど、2つ目のコンボボックスにどうやって表示させればいいの?

今回は、2つのコンボボックスを連動させて表示させる方法をお伝えしますね。

 

1つ目のコンボボックスに表示

 

説明のために「営業日報」ファイルを使用しますね。

まずは1つ目のコンボボックスに表示させられないと先に進めないので、1つ目のコンボボックスの表示の方法から!

「営業日報」ファイルを使用して、1つ目のコンボボックスに部課名が表示できるようにしてみましょう。

 

 

(はてな君)
前にやったから大丈夫!というか今前の記事見てきた!

 

【アクセス】コンボボックスにテーブルの値を表示させよう

2018年10月24日
 
 
プロパティーシートの「データ」タブの「値集合ソース」で表示させたいテーブルを選び、「書式」タブで「列数」と「列幅」の設定をするとコンボボックスにテーブルの値が表示されます。
 
 
(あいちゃん)
前回の記事のおさらいですね!1つ目のコンボボックスの表示ができたら次に進みましょう!
 
 
 

 

「F_営業日報」をデザインビューで開いて、2つ目のコンボボックスを作成しましょう。

 

ラベルのプロパティシート

標題 氏名

 

コンボボックスのプロパティシート

名前 cmb氏名

 

 

(はてな君)
部課名を選択したら、該当する氏名が表示されるようになるってこと?

 

(あいちゃん)
そういうこと!なんだけど、このままでは表示されないので、クエリを準備する必要があるんです!

 

クエリを準備しよう

 

前回使用した「営業日報」ファイルをそのまま使用して説明しますね。

前回「Q_社員マスター」ってクエリを作成したのですが、そのクエリをちょこっと改造して使っちゃいます。

 

【アクセス】テーブルを結合させてクエリで表示させよう!

2018年10月25日
 
 
「Q_社員マスター」をデザインビューで開きましょう。
 
 
 
 
 
 
「部課コード」の抽出条件に [Forms]![F_営業日報]![cmb部課名]を直接入力するか、ビルドを使用して入力します。

 

ビルドを使用する方法は下記の記事をどうぞ!

 

 
 

クエリの準備は以上なので、保存して閉じておきましょう。

 

 

コンボボックスを連動させる

 

では、フォームに戻って、2つ目のコンボボックスの設定をしましょう。

 

(はてな君)
わかった!「値集合ソース」に「Q_社員マスター」を設定すればいいんだ!あと「列数」と「列幅」の設定!

 

(あいちゃん)
正解!なんだけどもう一つ「連結列」の設定も必要なんです。

 

 

 

①「cmb氏名」を選択した状態で、プロパティシートの②「データ」タブを選択し、「値集合ソース」で「Q_社員マスター」を選び、「連結列」を「4」にします。

 

(はてな君)
連結列を4にするのってなんで?

 

(あいちゃん)
「cmb氏名」って「Q_社員マスター」から表示させてるんだけど「Q_社員マスター」の左から4番目が「氏名」になってるでしょ!

 

(はてな君)
あ~なるほどそういうことか!

 

 

 

プロパティーシートの③「書式」タブで「列数」を「4」に「列幅」を「0cm;0cm;0cm;2cm」に設定します。

 

一度この状態で「フォームビュー」で確認してみましょう。

 

 

(はてな君)
あっちゃんと表示された!けど?最初だけ?部課名変更しても氏名はそのままみたい。

 

(あいちゃん)
このままだと、ちゃんと動いてくれるのは最初だけなんです・・・ちょこっとコードに書いてあげると動くようになるので!

 

 

 

④「cmb部課名」を選択した状態で、⑤「イベント」タブを左クリックし、「更新後処理」で「イベントプロシージャ」を選択してコードを表示させましょう。

 

「Private Sub cmb部課名_AfterUpdate()」と「End Sub」の間に下記のコードを追加しましょう。

 

 

このコードを追加することで、部課名が変更されたら、氏名に入っている値がクリアされて、条件に合う氏名が表示されるようになります。

 

 

(はてな君)
ちゃんと動くようになった~!

 

 

 

コードをコピーされたい場合は下記の記事を参考にしてください。

関連記事
 

 

そうそう、たまにどこも間違ってないって思うのに動かないなぁってことがあります。そんな時は 一度フォームを閉じてみる、アクセスを終了させてみる等してみてくださいね。

そうするとちゃんと動いたりします。

 

「F_営業日報」は保存しておいてくださいね。

 

まとめ

 

2つのコンボボックスが連動して動いたらなんだかすごい!

 

色々な場面で活躍してくれること間違いなしですね。