• ベストアンサー

コンボボックスでの絞り込み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

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

  • ベストアンサー
noname#22650
noname#22650
回答No.1

詳しくは分かりませんが、とりあえず Me!売上げ.Form.FilterOn = True の直前に debug.print Me!売上げ.Form.Filter と入れて、イミディエイトウインドウでFilterの内容を確認してみては?

minmina
質問者

お礼

ありがとうございました。 解決しました! コンボ3の連結列が3になってました。 1に直してOKでした。お恥ずかしい。

その他の回答 (1)

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.2

フォームのフィルターの事は詳しくないのですが、ご質問は 「コンボ1でA商店、コンボ2でみかんを選択後、コンボ3を開いたとき、 三ケ日と愛媛が候補に出てきて欲しいのに、何も出てこない」 という事でいいんでしょうか。そうであれば、 コンボ1で選択後はコンボ2のRowSourceを、 コンボ2で選択後はコンボ3のRowSourceを、 それぞれ書き換えればいけると思います。 ご質問が違っていたごめんなさい。 頑張ってくださいヽ(^。^)ノ

minmina
質問者

お礼

ありがとうございました。 単純な間違いでお恥ずかしい。 連結列が間違っていました。

関連するQ&A