コンボボックスのリストをその都度変更する - Accessコントロール

ここではチェックボックスで地方を選択できるようにし、関西を選択した場合近畿の2府5県のリストが表示され、関東を選択すると1都6県のリストが表示されます。

チェックボックスはフレーム内に配置され、フレームのAfterUpdateイベントで、コンボボックスのRowSourceデータを変更しています。

又、初期値はForm_Loadイベント内で、コンボボックスのRowSourceTypeをvaluelist(値リスト)に設定しています。

BackHome Backコントロール


フォームのデザインビューでコンボボックスとフレームを配置し、フレーム内に2つのチェックボックスを配置し、関東・関西を選択できるようにします。
チェックボックスの選択により、動的にコンボボックスのリストを変更します。
動的にコンボボックスのリストを変更します

コンボボックスのリストを動的に変更するVBAコードです。
・MyComboSet(v As Long) - 引数vにより、コンボボックスのRowSourceに選択項目をセットします。
・フレーム6_AfterUpdate - チェックボックスがクリックされ変更されると、このイベントが発生し、MyComboSetを実行します。
・Form_Load - フォーム起動時に発生するイベントで、コンボボックスを値リストにするのと、チェックボックスの初期値をセットします。
コンボボックスのリストを動的に変更するVBAコード

チェックボックスで関東を選択すると、コンボボックスには1都6県(茨城県;栃木県;群馬県;埼玉県;千葉県;東京都;神奈川県)のリストが表示されます。
チェックボックスで関東を選択

チェックボックスで関西を選択すると、コンボボックスには2府5県(大阪府;京都府;兵庫県;奈良県;三重県;滋賀県;和歌山県)のリストが表示されます。
チェックボックスで関西を選択

《 VBAコード 》
Option Compare Database

Private Sub MyComboSet(v As Long)
    If v = 1 Then
        Me!コンボ0.RowSource = "茨城県;栃木県;群馬県;埼玉県;千葉県;東京都;神奈川県"
    ElseIf v = 2 Then
        Me!コンボ0.RowSource = "大阪府;京都府;兵庫県;奈良県;三重県;滋賀県;和歌山県"
    End If
End Sub

Private Sub フレーム6_AfterUpdate()
    If フレーム6.Value = 1 Then
        MyComboSet (1)
    ElseIf フレーム6.Value = 2 Then
        MyComboSet (2)
    End If
End Sub

Private Sub Form_Load()
    Me!コンボ0.RowSourceType = "value list"
    Me!フレーム6 = 1
    MyComboSet (1)
End Sub

BackHome Backコントロール

Copyright(C) FeedSoft