あるコンボボックスに表示される選択項目を、もう1つのコンボボックスの選択肢に応じて動的に替える方法です。大分類→中分類→小分類と絞り込んで選択していくような画面に応用できます。
- まず大分類となる項目を選択するためのコンボボックスを作成します。これは普通の方法で作ります。この例では「分類ID」を選択するためのコンボボックスで、名前を"分類"としました。
- 続いて小分類となるコンボボックスを作成します。
- このコンボボックスの[値集合ソース]プロパティに次のようなSQLステートメントまたは同等のクエリーを指定します。ここで"サンプルフォーム"とはこのフォームの名前です。分類IDフィールドの抽出条件を"[Forms]![サンプルフォーム]![分類]"とすることによって、このフォームの大分類のコンボボックス"分類"で選択された分類IDのレコードだけが"鳥名テーブル"から抽出されるようになります。
- マクロまたは次のようなイベントプロシージャを作り、大分類のコンボボックスが切り替わったら小分類のコンボボックスの内容を再クエリーするように設定します。これがないとフォームを開いて初めてコンボボックスの選択を行うときはうまく動作しますが、"分類"コンボボックスの選択を切り替えたときにもう1つのコンボボックスの内容がリンクしてくれません。
Private Sub 分類_AfterUpdate()
Me!鳥名.Requery
'"鳥名"は鳥の名前を選択するコンボボックスの名前
End Sub
|