ACCESSクエリエラーの原因
ACCESS2007を使用しています。
作成時はうまくいってたはずのクエリが最近きちんと動作しなくなり
原因を探してますが分からず皆様のお知恵をお借りしたいと思っています。
問題のクエリではクエリ実行時にある条件のフィールドに「#error」と出力されています。
(英語版のACCESSですので、もしかしたら日本語版だと少し違うかもしれません。)
そのクエリフィールドの内容は、
IIf([weight]<>"",IIf([weight]<[SD3n],3,IIf([weight]<[SD2n],2,IIf([weight]<[SD2p],1,IIf([weight]<[SD3p],4,5)))),9)
このクエリで参照しているのは1つのクエリで、その中に
weight, SD3n, SD2n, SD2p, SD3p
というフィールドがあります。
簡単に説明すると、各人の体重(weight)を元にその体重がどのレベル(太りすぎとか痩せ気味とか)にあるかを
1~5のグループに分けるというものです。
各人の年齢や性別によってSD3n, SD2n, SD2p, SD3pは違うものが入っています。
また、体重が入力されていないものは「9」を返します。
で、問題の「#error」が返されるのは、体重が入力されている全てで、体重が空白のレコードには
きちんと「9」を返してくれます。
ちなみに、最初にIIF関数の条件部分を「is Null」に変えて、
IIf([weight] is Null,IIf([weight]<[SD3n],3,IIf([weight]<[SD2n],2,IIf([weight]<[SD2p],1,IIf([weight]<[SD3p],4,5)))),9)
とした場合は、体重が入力されているレコードについて全て「5」が返されます。
本来はデータの内容的には全て「3」を返すはずです。
また、元のクエリのweight, SD3n, SD2n, SD2p, SD3pの参照元のテーブルでは
全てのフィールドについて数値型にしています。
最初、ダミーデータ等でテストをしていたときはうまくいっていたので、何かがおかしくなったのだと
思うのですが、よくわからず、もしも、アドバイス等ありましたら教えて下さい。
お礼
kkkkkmさん 回答ありがとうございます。 別のシステムからエクスポートしたデータでして、空白に見えるけど、空白でなかったようです。NZ関数を教えていただき、解決しました。 IIf(Nz([運送会社営業所/空港名],"")="",[出荷先名],[運送会社営業所/空港名])