- 締切済み
Access97での空白フィールドの比較
Access97で空白フィールド同士を比較させたときに、 「等しい」と判定させたいのですが、 現状「不一致」と判定されてしまいます。 今はクエリーで抽出させているのですが何か方法は無いものでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tokuhisa
- ベストアンサー率0% (0/0)
nz(Len([filed]))で長さ0の時はNullなので、比較の条件の中に組み込んでやれば出来ると思います。というか最近はこれを頻繁に使っています。 おためしあれ!
- ARC
- ベストアンサー率46% (643/1383)
ありゃ? VBAの話ではなかったのですか(;^_^A お書きになられたご質問からは、いまいちご質問の趣旨がつかみきれなかったんで、勝手にVBAのことだと推測して書いたんですが、裏目に出ちゃいましたね。 -*-*-*-*-*-*- ちなみに、Nz()は、クエリにおいても使用可能なので、 SELECT * FROM テーブル1,テーブル2 WHERE Nz(テーブル1.フィールド1) = Nz(テーブル2.フィールド2) みたいなクエリを作れば、双方のテーブルのフィールドが同じもの(NULL含む)を抽出することができます。(テーブル名、フィールド名を適宜書き換えて、クエリをSQLビューにしてから貼り付ければ、表示、編集できるようになります) この回答で解決できないとか、も少し詳しい解説がほしいとかありましたら、どしどし補足してくださいね。 その時はもしよかったら、現在どういうことをなさっていて、それをどうしたいのかを、も少し具体的に補足していただけるとありがたいです。
- ARC
- ベストアンサー率46% (643/1383)
VBAの話ですよね? 式 'NULL = 適当な値' の結果は、NULLになります。 従って、 IF NULL = NULL THEN Msgbox "True" ELSE Msgbox "False" END IF としても、"NULL = NULL"の部分がNULLと判定されるため、"False" が表示されるんですね。(式の結果が True以外のときは、ELSE以降が実行される) このような場合、例えばこのよう判定します。↓ IF NZ([フィールド1]) = NZ([フィールド2]) THEN Debug.Print "一致" ELSE Debug.Print "不一致" END IF
お礼
お礼遅くなりました。 この判定はやはりクエリーだけでは 難しいのでしょうか?