過去ログ

                                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
**************************
どうもこれで上手く反映しません。
方法を教えてください。

コンボとリストボックスともに元データテーブルからのレコードです。

 ───────────────────────────────────────  ■題名 : Re:組み合わせ  ■名前 : イケガミ  ■日付 : 04/3/12(金) 14:42  -------------------------------------------------------------------------
   >Me!中LBOX.RowSource = _
> "SELECT 中分類リストB FROM 元データ WHERE 大分類 = " & Me!大分類コンボ

大分類フィールドの、フィールド型は?
テキスト型なら以下のようにしてください。

"SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'"

 ───────────────────────────────────────  ■題名 : (ひきつづきで)組み合わせ  ■名前 : liee_chang  ■日付 : 04/3/12(金) 15:07  -------------------------------------------------------------------------
   ▼イケガミ さん:
ありがとうございます!できました。文字列の場合は「'」でくくらないといけなかったんですね。

できればこれも教えて欲しいのですが・・
中LBOXと同じ表示を出したいリストボックスが2コあるのですが
これに変数をつけて
***************************
Dim i As Integer
  Me!中LBOX(i).RowSource = _
    "SELECT 中分類リストB FROM 元データ WHERE 大分類 = '" & Me!大分類コンボ & "'"
****************************
こんなのってできないでしょうか。
それぞれのリストボックス名は中LBOX(1)とか(2)とします。

 ───────────────────────────────────────  ■題名 : Re:(ひきつづきで)組み合わせ  ■名前 : イケガミ  ■日付 : 04/3/12(金) 15:20  -------------------------------------------------------------------------
   >それぞれのリストボックス名は中LBOX(1)とか(2)とします。

中LBOX1
中LBOX2
のようにつけておいて、

Dim i As Long

Me("中LBOX" & i).RowSource
のようにすれば大丈夫だと思います。

 ───────────────────────────────────────  ■題名 : Re:(ひきつづきで)組み合わせ  ■名前 : liee_chang  ■日付 : 04/3/12(金) 16:42  -------------------------------------------------------------------------
   ▼イケガミ さん:
こうしてみましたが、「中LBOX0」の中しか表示がされません。
中LBOX1〜後の表示が全く空なのですが理由はわかりますか?

>Dim i As Long
>
>Me("中LBOX" & i).RowSource
>のようにすれば大丈夫だと思います。

 ───────────────────────────────────────  ■題名 : Re:(ひきつづきで)組み合わせ  ■名前 : liee_chang  ■日付 : 04/3/12(金) 16:48  -------------------------------------------------------------------------
   値集合ソースを選択してなかったために表示されていなかったようです。
ただし、
大分類コンボで選択した値との反映が中LBOX0には出ますが
それ以降の1〜は反映しないです。
わかりますでしょうか。

>こうしてみましたが、「中LBOX0」の中しか表示がされません。
>中LBOX1〜後の表示が全く空なのですが理由はわかりますか?
>
>>Dim i As Long
>>
>>Me("中LBOX" & i).RowSource
>>のようにすれば大丈夫だと思います。

 ───────────────────────────────────────  ■題名 : Re:(ひきつづきで)組み合わせ  ■名前 : liee_chang  ■日付 : 04/3/12(金) 19:35  -------------------------------------------------------------------------
   なんだか、自分で出来てしまったので解決です。
とりあえず、もし何か参考になればと思い私の今回のコードを記しておくことにしました。
下は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
**************************************************

イケガミさん>
変数の件、助かりました。ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re:(ひきつづきで)組み合わせ  ■名前 : イケガミ  ■日付 : 04/3/12(金) 19:39  -------------------------------------------------------------------------
   > 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

でいいと思いますけど。

 ───────────────────────────────────────  ■題名 : Re:(ひきつづきで)組み合わせ  ■名前 : liee_chang  ■日付 : 04/3/12(金) 20:16  -------------------------------------------------------------------------
   ▼イケガミ さん:
中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
>
>でいいと思いますけど。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 546