アプリ版:「スタンプのみでお礼する」機能のリリースについて

フォーム[F_MENU]に非連結のテキストボックス検索用A~Cで3つあります。
検索用A
検索用B
検索用C

AかつBかつCという全件一致でフィルターをかけてフォーム[詳細]を開きたいのですが

DoCmd.OpenForm "F_詳細", , , "A = '" & Forms!F_MENU!検索用A & "'" And "B = '" & Forms!F_MENU!検索用B & "'" And "C = '" & Forms!F_MENU!検索用C & "'"

とやると、実行時エラー'13':型が一致しません。
と出てしまいます。

Aだけ、Bだけ、Cだけ、それぞれひとつずつ書けば、エラーなく結果が得られます。
DoCmd.OpenForm "F_詳細", , , "A = '" & Forms!F_MENU!検索用A & "'"
DoCmd.OpenForm "F_詳細", , , "B = '" & Forms!F_MENU!検索用B & "'"
DoCmd.OpenForm "F_詳細", , , "C = '" & Forms!F_MENU!検索用C & "'"

おそらくANDの使い方が誤っていると思うのですが、添削お願いいたします。
全てのテキストボックス及び元テーブルのデータ型はテキスト型です。

条件は3つとも完全一致のみで、検索用ABC、F_詳細のABCそれぞれのカラムにNULL値はありません。

よろしくお願いします。

A 回答 (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
とすることもあり。
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだまだ勉強中ですので、またお世話になるかとおもいますが、よろしくお願いします。

お礼日時:2014/07/31 14:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!