• ベストアンサー

アクセス コンボボックス VBA

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

質問者が選んだベストアンサー

  • ベストアンサー
  • yoko3333
  • ベストアンサー率35% (47/134)
回答No.1

コンボ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)
回答No.2

コンボ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

関連するQ&A