プロが教えるわが家の防犯対策術!

アクセスのテーブルにテキスト型フィールド「●●日付」を作成しました。さらに、定型入力の方法として、日付(____/__/__)を指定しています。

このテーブルから、クエリでデータを取得する際、●●日付にデータを入力していないレコードのみを取得したいと思い、クエリの抽出条件として=""(ダブルクォーテーション)や=''(シングルクォーテーション)と記載したのですが、レコードが1件も抽出されません(もちろん●●日付にデータを入れていないレコードは複数あります)。一方で、<>""や<>''で、●●日付にデータが入力されているレコードを抽出しようとした場合は、●●日付にデータが入力されているレコードが抽出されます。

テキスト型フィールドにデータが入力されていないレコードを抽出するクエリはどのようにしたら作成できるのでしょうか?

A 回答 (1件)

まず、「何も入っていない」は大きく分けると2パターンあります。


 1.""の場合(長さ0の文字列)
 2.Nullの場合(Nullとは何かは詳しくはGoogleなどでお調べください)

質問者様は1で抽出しようとしていますが、実際はNullなので抽出されてこないと
思われます。※ちなみに定型入力はあくまで入力時の形式の設定です。

クエリー(SQL)では
1の場合の条件の書き方は、「=""(ダブルクォーテーション)」
2の場合の条件の書き方は、「IS NULL」
となります。

SQLでは以下のようになります
 テーブル名:テーブル1
 日付フィールド名:日付1
 ----------------------------------------
 SELECT テーブル1.*
 FROM テーブル1
 WHERE (((テーブル1.日付1) IS NULL));
 ----------------------------------------


追記:
 ちなみに1でも2でも対応できる条件の書き方は、
 「NZ(フィールド名,"")=""」 となります。
  ※レコードが大量な場合、速度面の検証も必要です。
    • good
    • 0
この回答へのお礼

初歩的な質問にご丁寧にご回答いただきありがとうございました。
大変助かりました。

お礼日時:2011/03/25 10:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!