初めて自分の家と他人の家が違う、と意識した時

Accessのレポートで、iif関数である文字列を検索して、それがあれば非連結テキストボックスに「ありました!」とメッセージを入れたいのですが、できますでしょうか?

レポートの内容は、商品リストで下記のようなフィールドからなっています。

個数 商品名
-------------------------------
2 ミカンAA
3 ミカンAB
1 リンゴAB
2 リンゴAB
-------------------------------

たとえば、商品名に文字列「AA」が含まれる商品個数の総合計を求めるときは、下記でできました。

非連結のテキストボックスのプロパティ
= Sum(IIF([商品名] Like "*AA*",[数量],0))

しかし、下記のようにメッセージを入れたいのですが、文字列「AA」が含まれていても何も入りません。
= (IIF([商品名] Like "*AA*","ありました!",0)

どこが悪いのかどなたか助けてください。

A 回答 (3件)

非連結テキストボックスは、レポートフッターにある、ということでしょうか?



であるなら、

> = (IIF([商品名] Like "*AA*","ありました!",0)

この式では、詳細セクションの最後のレコードについて判定していることになります。
最後のレコードに 「AA」 が含まれていなければ
"ありました!" は表示されません。


レポートフッターに表示するにはいろいろな方法がありますが
簡単で応用が利きそうな例。

=Sum(IIf([商品名] Like "*AA*",1,0))

これだけなら、見つけたレコード数を表示します。

テキストボックスの「書式」プロパティを

ありました!;;0

にすれば、「ありました!」と表示されます。

おまけに「書式」を

#"件 ありました!";;0

で、「5件 ありました!」などと表示することもできます。
    • good
    • 2
この回答へのお礼

お礼遅くりました。「詳細セクションの最後のレコードについて判定していることになります」は目からウロコです。できないわですね。「テキストボックスの「書式」プロパティ」を変更する技も驚きました。ありがとうございました。

お礼日時:2013/02/21 16:35

#1です。

誤記あるので訂正

×)IIF(instr(1,[商品名],"AA")[])>0, "ありました!", 0)

○)IIF(instr(1,[商品名],"AA")>0, "ありました!", 0)
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。表示はするのですが、少々問題があり、1番目のレコードにターゲットがある場合は表示しますが、そのほかはダメです。しかし、大変勉強になりました。ありがとうございました。

お礼日時:2013/02/21 16:37

> = (IIF([商品名] Like "*AA*","ありました!",0)


閉じカッコが足りない。

IIF(instr(1,[商品名],"AA")[])>0, "ありました!", 0)
でどうなりますか?
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A