コンボボックスが2つあり片方をAもう一方をBとします。
Aのリストは1~10まであります。
Bのリストは100~200まであるとします。
Aのリストで1を選んだとすると、Bのリストでは100~
110までしか選べない(表示されない)ようにするVBAを教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (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
  ・
  ・
  ・

という感じになるかと思います。
    • good
    • 0

コンボ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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報