- 締切済み
IIF IsNull
テーブルに商品名1と商品名2があります 商品名1 商品名2 冷蔵庫 A2 冷蔵庫 冷蔵庫 C1 とデータが入っています。 これを商品名1&商品名2としてレポートに出力したいのですが 出力する時に商品名2に何も入力されていなければ"BG"としたい。 冷蔵庫A2 冷蔵庫BG 冷蔵庫C1 と出力されるようにしたいのですが… IIf(IsNull([商品名2]), [商品名1] & "BG",[商品名1] & [商品名2])ではうまく行かないのですが…
- みんなの回答 (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]) 見た目は、質問者と同じです。 が、実際は違うようです。 コピペしたところエラーになりました。 一旦、コントロールソースを完全に消去してて入力し直すと問題なく動作しました。
失礼、テストの上での回答でした。 が、転記で重大なミスを! Len(Trim([商品名2]) & "") )の位置を訂正されたし。 ※面目ないです!
空値に関しては3つの種類があると考えたがいいです。 1、入力もなにもされていない初期状態。 2、chr$(0)が入力されている状態。 3、空白等の見かけ上の空値。 この3つに対応するやり方の一つに Len(Trim([商品名2] & "")) というやり方。 Len([商品名2]) Len(Trim([商品名2])) は、いずれも空値を返す場合があります。& ""がミソです。
お礼
=IIf(Len(Trim([商品名2] & ""))=0,[商品名1] & "BG",[商品名1] & [商品名2]) でよろしいでしょうか #Errorになります
- mshr1962
- ベストアンサー率39% (7417/18945)
Iif(Len(Trim([商品名2]))=0,[商品名1] & "BG",[商品名1] & [商品名2]) だとどうですか? 商品名が本当にNullなら、下記のほうがいいかもしれません。 [商品名1] & Nz([商品名2],"BG")
お礼
=IIf(Len(Trim([商品名2]))=0,[商品名1] & "BG",[商品名1] & [商品名2]) #Errorになります [商品名1] & Nz([商品名2],"BG") #Errorになります
- JAWS55
- ベストアンサー率38% (176/452)
Accessでしょうか? テストしたらちゃんと動きます。 商品名2はNullではなく、空白が入っていませんか? ご確認ください。
お礼
ACCESSです 空白は入っていません
お礼
=IIf(Len(Trim([商品名2])&"")=0,[商品名1] & "BG",[商品名1] & [商品名2]) でよろしいでしょうか #Errorになります ACCESSがおかしいのでしょうか?