• 締切済み

IIF IsNull

テーブルに商品名1と商品名2があります 商品名1 商品名2 冷蔵庫   A2 冷蔵庫   冷蔵庫   C1 とデータが入っています。 これを商品名1&商品名2としてレポートに出力したいのですが 出力する時に商品名2に何も入力されていなければ"BG"としたい。 冷蔵庫A2 冷蔵庫BG 冷蔵庫C1 と出力されるようにしたいのですが… IIf(IsNull([商品名2]), [商品名1] & "BG",[商品名1] & [商品名2])ではうまく行かないのですが…

みんなの回答

noname#140971
noname#140971
回答No.5

ID 商品名1 商品名2 <xxx> 1  A     1    A1 2  AA    1    AA1 3  AAA          AAABG 4  B     2    B2 5  BB    2    BB2 6  BBB          BBBBG これは、レポートをワードへ出力したもの。 =IIf(Len(Trim([商品名2]) & "")=0,[商品名1] & "BG",[商品名1] & [商品名2]) 見た目は、質問者と同じです。 が、実際は違うようです。 コピペしたところエラーになりました。 一旦、コントロールソースを完全に消去してて入力し直すと問題なく動作しました。

noname#140971
noname#140971
回答No.4

失礼、テストの上での回答でした。 が、転記で重大なミスを! Len(Trim([商品名2]) & "") )の位置を訂正されたし。 ※面目ないです!

howtogoo
質問者

お礼

=IIf(Len(Trim([商品名2])&"")=0,[商品名1] & "BG",[商品名1] & [商品名2]) でよろしいでしょうか #Errorになります ACCESSがおかしいのでしょうか?

noname#140971
noname#140971
回答No.3

空値に関しては3つの種類があると考えたがいいです。 1、入力もなにもされていない初期状態。 2、chr$(0)が入力されている状態。 3、空白等の見かけ上の空値。 この3つに対応するやり方の一つに Len(Trim([商品名2] & "")) というやり方。 Len([商品名2]) Len(Trim([商品名2])) は、いずれも空値を返す場合があります。& ""がミソです。

howtogoo
質問者

お礼

=IIf(Len(Trim([商品名2] & ""))=0,[商品名1] & "BG",[商品名1] & [商品名2]) でよろしいでしょうか #Errorになります

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

Iif(Len(Trim([商品名2]))=0,[商品名1] & "BG",[商品名1] & [商品名2]) だとどうですか? 商品名が本当にNullなら、下記のほうがいいかもしれません。 [商品名1] & Nz([商品名2],"BG")

howtogoo
質問者

お礼

=IIf(Len(Trim([商品名2]))=0,[商品名1] & "BG",[商品名1] & [商品名2]) #Errorになります [商品名1] & Nz([商品名2],"BG") #Errorになります

  • JAWS55
  • ベストアンサー率38% (176/452)
回答No.1

Accessでしょうか? テストしたらちゃんと動きます。 商品名2はNullではなく、空白が入っていませんか? ご確認ください。

howtogoo
質問者

お礼

ACCESSです 空白は入っていません

関連するQ&A