- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 複数条件のフィルタ)
Access 複数条件のフィルタ
このQ&Aのポイント
- Accessのフォーム[F_MENU]に非連結のテキストボックス検索用A~Cがあります。AかつBかつCという全件一致でフィルターをかけてフォーム[詳細]を開きたいのですが、ANDの使い方が誤っているためエラーが発生しています。
- Aだけ、Bだけ、Cだけの場合はそれぞれひとつずつ書けばエラーは発生しないため、エラーの原因はANDの使い方です。
- 条件は3つとも完全一致のみであり、検索用ABCとF_詳細のABCそれぞれのカラムにNULL値はありません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
And の扱いがおかしいですね。 DoCmd.OpenForm "F_詳細", , , "A = '" & Forms!F_MENU!検索用A & "' And B = '" & Forms!F_MENU!検索用B & "' And C = '" & Forms!F_MENU!検索用C & "'" じゃないですか。 Docmd.Openform のWhereConditionのところは Forms!F_MENU!検索用A が "いろは" Forms!F_MENU!検索用B が "にほへと" Forms!F_MENU!検索用C が "ちりぬるを" だったとしたら、Accessに渡された時には A='いろは' And B='にほへと' And C='ちりぬるを' にならねばなりません。 条件が長ったらしい時はどこが間違っているのか分からない時がありますので いったん変数にセットして Dim tStr as string tStr = "A = '" & Forms!F_MENU!検索用A & "' And B = '" & Forms!F_MENU!検索用B & "' And C = '" & Forms!F_MENU!検索用C & "'" Debug.print tStr でイミディエイトウィンドウに出力して確かめていたりします。 んで、 DoCmd.OpenForm "F_詳細", , , tStr とすることもあり。
お礼
ありがとうございます。 まだまだ勉強中ですので、またお世話になるかとおもいますが、よろしくお願いします。