- ベストアンサー
Accessクエリ IIFについて
- Accessクエリで2つのテーブルをIDで紐付けて項目を比較し、○×を付けたい
- クエリCを元に前回と今回のフィールドを並べて表示し、評価する方法はあるか
- Null同士の比較についてと、テーブルの違いによる結果の違いについて質問
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- NotFound404
- ベストアンサー率70% (288/408)
Access2010 をお持ちでしたっけ? なら、 ヘルプで、算術演算子、比較演算子、論理演算子、演算子の優先順位 を熟読されることを強くお勧めします! (私もいまだに「えっ?」ということがあります (^_^;)) Nullが絡んでくると算術演算子では結果はかならずNullになります。 比較演算子でも同様なので 型番評価:IIf([前回_型番]=[今回_型番],"○","×") で少なくともどちらかがNullだった場合は Null ≠ True なので Trueではない方の × が採用されます。 Nullも○に含めたい場合。 そのフィールドがNullなのか「長さ0の空の文字列」なのかも考慮したほうが安全かもしれない。 (データ型によってはいらぬお節介かもしれませんが潰しは効きます) http://support2.microsoft.com/kb/883247/ja でフィールド名をを、A、B、とした場合に IIf(A=B Or (nz(A,"") = "" Or nz(B,"") = ""),"○","×") でどうじゃろね?「えっ?」だったらゴメン。
お礼
NotFound404さま いつもご回答ありがとうございます。 そもそも比較にNullが絡むとダメなんですね。承知しました。 >IIf(A=B Or (nz(A,"") = "" Or nz(B,"") = ""),"○","×") についですが、nz関数でA、BそれぞれでNullだった場合は""が返され それらが両方""だったら○(=それらが両方Nullだったら○)とするん ですね。 大変勉強になりました!ありがとうございました。 ※NotFound404さまのご回答に気づかず、はじめにご回答頂いた方を BAとしました。すみません。
お礼
f_a_007さま ご回答ありがとうございます。 Null同士だと×になってしまうんですね。。 で、それらに0文字を付加してあげれば、評価できるように なるんですね。 大変勉強になりました!ありがとうございました。