- ベストアンサー
コンボボックスでの絞り込み2つはOKなのに3つ目がNGです
Access2000で社内システムを作っています。 行き詰ってしまいました。コンボボックス3つを利用してサブフォームを開くフォームを作っています。 サブフォームは取引マスタを利用してQ_売上げというクエリを元にしています。 サブフォーム名 売上げです。レコードは い 1/1 A商店 みかん 三ケ日 100円 100個 ろ 1/2 A商店 なし 長十郎 80円 50個 は 1/3 A商店 みかん 愛媛 80円 100個 に 1/3 B商店 なし 長十郎 80円 100個 コンボ1で「A商店」を選ぶとコンボ2では「なし」と「みかん」が選べます。 フォームの動作はコンボ1を選ぶとい、ろ、は、に全部の レコードが表示されます。 コンボ1を選ぶとい、ろ、はのレコードに絞り込まれます ここまではうまくいくのですがコンボ3を開いたとき レコードい、はを表示したいのに該当なしに なってしまいます。 コードは以下の通りです。 アドバイスよろしくお願い致します。 Private Sub cmd取引先_AfterUpdate() If Me.cmd取引先 & "" = 0 Then Me.売上げ.Form.RecordSource = Q_売上げ Else Me.売上げ.Form.RecordSource = _ "SELECT * FROM Q_売上げ " & _ "WHERE 取引先 = '" & Me.cmd取引先 & "'" End If End Sub Private Sub cmd商品名_AfterUpdate() Me.売上げ.Form.FilterOn = False Me!売上げ.Form.Filter = _ "取引先='" & Me!cmd取引先 & _ "' and 商品名='" & Me!cmd商品名 & "'" Me!売上げ.Form.FilterOn = True End Sub Private Sub cmdブランド_AfterUpdate() Me.売上げ.Form.FilterOn = False Me!売上げ.Form.Filter = _ "取引先='" & Me!cmd取引先 & _ "' and 商品名='" & Me!cmd商品名 & _ "' and ブランド='" & Me!cmdブランド & "'" Me!売上げ.Form.FilterOn = True End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
詳しくは分かりませんが、とりあえず Me!売上げ.Form.FilterOn = True の直前に debug.print Me!売上げ.Form.Filter と入れて、イミディエイトウインドウでFilterの内容を確認してみては?
その他の回答 (1)
- snoopy64
- ベストアンサー率42% (337/793)
フォームのフィルターの事は詳しくないのですが、ご質問は 「コンボ1でA商店、コンボ2でみかんを選択後、コンボ3を開いたとき、 三ケ日と愛媛が候補に出てきて欲しいのに、何も出てこない」 という事でいいんでしょうか。そうであれば、 コンボ1で選択後はコンボ2のRowSourceを、 コンボ2で選択後はコンボ3のRowSourceを、 それぞれ書き換えればいけると思います。 ご質問が違っていたごめんなさい。 頑張ってくださいヽ(^。^)ノ
お礼
ありがとうございました。 単純な間違いでお恥ずかしい。 連結列が間違っていました。
お礼
ありがとうございました。 解決しました! コンボ3の連結列が3になってました。 1に直してOKでした。お恥ずかしい。