Page 546 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼組み合わせ liee_chang 04/3/12(金) 14:27 ┗Re:組み合わせ イケガミ 04/3/12(金) 14:42 ┗(ひきつづきで)組み合わせ liee_chang 04/3/12(金) 15:07 ┣Re:(ひきつづきで)組み合わせ イケガミ 04/3/12(金) 15:20 ┃ ┗Re:(ひきつづきで)組み合わせ liee_chang 04/3/12(金) 16:42 ┃ ┗Re:(ひきつづきで)組み合わせ liee_chang 04/3/12(金) 16:48 ┗Re:(ひきつづきで)組み合わせ liee_chang 04/3/12(金) 19:35 ┗Re:(ひきつづきで)組み合わせ イケガミ 04/3/12(金) 19:39 ┗Re:(ひきつづきで)組み合わせ liee_chang 04/3/12(金) 20:16 ─────────────────────────────────────── ■題名 : 組み合わせ ■名前 : liee_chang ■日付 : 04/3/12(金) 14:27 -------------------------------------------------------------------------
accessVBAで、以下のことをやろうとしています。 1)メインフォーム 大分類コンボボックス 中分類1のリストボックス 中分類2 〃 まず、 1)で大分類が入ったコンボボックスの選択肢によってリストボックスの表示内容を変えたいのですが、 ************************** Private Sub 大COMBO_AfterUpdate() Me!中LBOX.RowSource = _ "SELECT 中分類リストB FROM 元データ WHERE 大分類 = " & Me!大分類コンボ End Sub ************************** どうもこれで上手く反映しません。 方法を教えてください。 コンボとリストボックスともに元データテーブルからのレコードです。 |
>Me!中LBOX.RowSource = _ > "SELECT 中分類リストB FROM 元データ WHERE 大分類 = " & Me!大分類コンボ 大分類フィールドの、フィールド型は? テキスト型なら以下のようにしてください。 "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" |
▼イケガミ さん: ありがとうございます!できました。文字列の場合は「'」でくくらないといけなかったんですね。 できればこれも教えて欲しいのですが・・ 中LBOXと同じ表示を出したいリストボックスが2コあるのですが これに変数をつけて *************************** Dim i As Integer Me!中LBOX(i).RowSource = _ "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" **************************** こんなのってできないでしょうか。 それぞれのリストボックス名は中LBOX(1)とか(2)とします。 |
>それぞれのリストボックス名は中LBOX(1)とか(2)とします。 中LBOX1 中LBOX2 のようにつけておいて、 Dim i As Long Me("中LBOX" & i).RowSource のようにすれば大丈夫だと思います。 |
▼イケガミ さん: こうしてみましたが、「中LBOX0」の中しか表示がされません。 中LBOX1〜後の表示が全く空なのですが理由はわかりますか? >Dim i As Long > >Me("中LBOX" & i).RowSource >のようにすれば大丈夫だと思います。 |
値集合ソースを選択してなかったために表示されていなかったようです。 ただし、 大分類コンボで選択した値との反映が中LBOX0には出ますが それ以降の1〜は反映しないです。 わかりますでしょうか。 >こうしてみましたが、「中LBOX0」の中しか表示がされません。 >中LBOX1〜後の表示が全く空なのですが理由はわかりますか? > >>Dim i As Long >> >>Me("中LBOX" & i).RowSource >>のようにすれば大丈夫だと思います。 |
なんだか、自分で出来てしまったので解決です。 とりあえず、もし何か参考になればと思い私の今回のコードを記しておくことにしました。 下はDimで変数を指定し、複数のリストボックスにもコンボボックスで選択した値によって同じ表示内容を出すものです。 For〜nextでリストボックスの個数=カウンタ変数とし、変数xの値に+1をリストボックス分処理するように記述しました。 ************************************************** Sub AAA Dim i As Integer, x As Integer For i = 0 To 3 Me("中LBOX" & x).RowSource = _ "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" x = i + 1 Next End Sub ************************************************** イケガミさん> 変数の件、助かりました。ありがとうございます。 |
> Sub AAA > Dim i As Integer, x As Integer > For i = 0 To 3 > Me("中LBOX" & x).RowSource = _ > "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" > x = i + 1 > Next > End Sub 中LBOX が、1〜3 まであるのなら、 Dim i As Integer For i = 1 To 3 Me("中LBOX" & i).RowSource = _ "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" Next でいいと思いますけど。 |
▼イケガミ さん: 中LBOXを1つ増やしたため、0-3にしました。 イケガミさんのおっしゃる通り、1-4でも構いませんですね。。 >> Sub AAA >> Dim i As Integer, x As Integer >> For i = 0 To 3 >> Me("中LBOX" & x).RowSource = _ >> "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" >> x = i + 1 >> Next >> End Sub > >中LBOX が、1〜3 まであるのなら、 > >Dim i As Integer >For i = 1 To 3 > Me("中LBOX" & i).RowSource = _ > "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'" >Next > >でいいと思いますけど。 |