• 締切済み

Access97での空白フィールドの比較

Access97で空白フィールド同士を比較させたときに、 「等しい」と判定させたいのですが、 現状「不一致」と判定されてしまいます。 今はクエリーで抽出させているのですが何か方法は無いものでしょうか?

みんなの回答

  • tokuhisa
  • ベストアンサー率0% (0/0)
回答No.3

nz(Len([filed]))で長さ0の時はNullなので、比較の条件の中に組み込んでやれば出来ると思います。というか最近はこれを頻繁に使っています。 おためしあれ!

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

ありゃ? VBAの話ではなかったのですか(;^_^A お書きになられたご質問からは、いまいちご質問の趣旨がつかみきれなかったんで、勝手にVBAのことだと推測して書いたんですが、裏目に出ちゃいましたね。 -*-*-*-*-*-*- ちなみに、Nz()は、クエリにおいても使用可能なので、 SELECT * FROM テーブル1,テーブル2 WHERE Nz(テーブル1.フィールド1) = Nz(テーブル2.フィールド2) みたいなクエリを作れば、双方のテーブルのフィールドが同じもの(NULL含む)を抽出することができます。(テーブル名、フィールド名を適宜書き換えて、クエリをSQLビューにしてから貼り付ければ、表示、編集できるようになります) この回答で解決できないとか、も少し詳しい解説がほしいとかありましたら、どしどし補足してくださいね。 その時はもしよかったら、現在どういうことをなさっていて、それをどうしたいのかを、も少し具体的に補足していただけるとありがたいです。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

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

noname#5002
質問者

お礼

お礼遅くなりました。 この判定はやはりクエリーだけでは 難しいのでしょうか?

関連するQ&A