- ベストアンサー
アクセス コンボボックス VBA
コンボボックスが2つあり片方をAもう一方をBとします。 Aのリストは1~10まであります。 Bのリストは100~200まであるとします。 Aのリストで1を選んだとすると、Bのリストでは100~ 110までしか選べない(表示されない)ようにするVBAを教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コンボBの「値集合タイプ」は「テーブル/クエリー」でしょうか? それとも「値リスト」でしょうか? 「テーブル/クエリー」なら、コンボAの「変更時」か「更新後処理」のイベントに Me!コンボB.RowSource = _ "SELECT フィールド名 FROM テーブル名 " & _ "WHERE 条件フィールド名=" & Me!コンボA & ";" という感じでSelect文を入れ替えてやれば良いです。 「値リスト」なら select Case Me!コンボA Case 10 Me!コンボB.RowSource = _ "100;101;・・・・・;110" Case 20 ・ ・ ・ という感じになるかと思います。
その他の回答 (1)
- ja7awu
- ベストアンサー率62% (292/464)
コンボA のクリック時のイベントに次のように記述します。 > Aのリストで1を選んだとすると、Bのリストでは100~ 110までしか選べない(表示されない)ようにする 多分、2を選ぶと、111~120 の10個にしたいのではないかと思いますので、 1のときは、 100からでなく 101~110 にしております。 Private Sub コンボA_Click() Dim RowList As String Dim N As Integer For N = 1 To 10 RowList = RowList & 100 + N + (Me.コンボA.Value - 1) * 10 & ";" Next Me.コンボB.RowSourceType = "Value List" Me.コンボB.RowSource = RowList End Sub