値が入っていない日付型の項目を抽出する方法は?

このQ&Aのポイント
  • 値が入っていない日付型の項目を抽出する方法について教えてください。
  • テーブルに訪問日という日付/時刻型の項目があり、まだ未訪問のデータを抽出したい場合、どのように指定すればよいでしょうか?
  • 抽出条件として=Nullを指定した場合は該当レコードがなく、日付が入っているレコードを指定する方法も効果的ではありませんでした。
回答を見る
  • ベストアンサー

値が入っていない日付型の項目を抽出する方法は?

いつもお世話になります。 表題の対象レコードを抽出する際にどのように指定すればよいでしょうか? テーブルには[訪問日」という項目を下記の条件で設けています。  データ型 日付/時刻型  書式、定型入力とも 日付(S) を指定 テーブルにレコードを追加した時点では日付は入っておらず、後に日付を 入力するようにしています。 それでまだ未訪問のデータを抽出したいのですが、どのように指定すればよいでしょうか? 以下の二つの抽出条件で試したのですが抽出できませんでした。  (1) =Null と指定した場合 該当レコードなしとなりました。 (2)昇順に並べ替えした場合に先頭にレコードがあったので <#2012/09/15# と指定したのですが日付が入っていて条件にあうレコードは抽出されたのですが、   日付が入っていないレコードは抽出されませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Null値(未入力値)は特殊な値ですので、=演算子では比較することはできません。Is演算子を使います。 抽出条件欄に Is Null としてください。Null以外を抽出するときは、 Is Not Null とします。

crabcan
質問者

お礼

毎回、詳しいご説明ありがとうございます。 ちゃんと理解できました。 補足で説明していただいたことも、早速 使ってみます。 ありがとうございました。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

抽出条件に Is Null として下さい。

crabcan
質問者

お礼

ありがとうございます。 入門書だけでは、なかなかそこまで説明がなく 困っていました。 また宜しくお願いします。

関連するQ&A

  • アクセスのテキスト型フィールドの初期値

    アクセスのテーブルにテキスト型フィールド「●●日付」を作成しました。さらに、定型入力の方法として、日付(____/__/__)を指定しています。 このテーブルから、クエリでデータを取得する際、●●日付にデータを入力していないレコードのみを取得したいと思い、クエリの抽出条件として=""(ダブルクォーテーション)や=''(シングルクォーテーション)と記載したのですが、レコードが1件も抽出されません(もちろん●●日付にデータを入れていないレコードは複数あります)。一方で、<>""や<>''で、●●日付にデータが入力されているレコードを抽出しようとした場合は、●●日付にデータが入力されているレコードが抽出されます。 テキスト型フィールドにデータが入力されていないレコードを抽出するクエリはどのようにしたら作成できるのでしょうか?

  • クエリーの抽出条件について

    「作表条件」というフォームにテキストボックスとして「日付1」、「日付2」を設置しています。 元のテーブルには「日付」という項目があり、「日付1」から「日付2」までのデータを抽出するため、 クエリの条件式に Between Nz([Forms]![作表条件]![日付1],#1800/01/01#) And Nz([Forms]![作表条件]![日付2],#9999/12/31#) と記述しています。 ただ、元のテーブルの日付がNULL値の場合があり、その場合「日付1」および「日付2」が空欄だとNULL値のレコードが抽出されません。 「日付」がNULLの場合でも抽出できるようにするには、どのようにすればよいでしょうか? どなたか教えてください。

  • Access VBA 日付で抽出できない?

    次の質問にお答えいただけませんか。 フォームで抽出条件を入力しテーブルから抽出をするとき Dim db As DAO.Database Dim rs As DAO.Recordset Dim mySQL As String Set db = CurrentDb() mySQL = "SELECT * FROM T_明細 " _ & "WHERE 顧客ID = " & CStr(Me!txtKey) & ";" Set rs = db.OpenRecordset(mySQL, dbOpenDynaset) 上記のような記述をしました。 テーブル名:T_明細   フィールド:顧客ID  日付 金額  フォームの抽出条件入力テキストボックス:txtKey このとき顧客IDでの抽出は問題なく出来ましたが "WHERE 顧客ID = を "WHERE 日付 = に変更して日付で抽出をしたいのですがうまくいきません。 テーブルの日付フィールドは 書式をgee-mm-dd 定型入力を>L99\-99\-99;0;# で書き込みました。 フォームのtxtKeyテキストボックスのプロパティも書式をgee-mm-dd 定型入力を>L99\-99\-99;0;#に設定してあります。 このようなときは mySQL = "SELECT * FROM T_明細 " _ & "WHERE 日付 = " & CStr(Me!txtKey) & ";" の、記述を何か変更しないといけないような気もしますが 対処の方法を教えていただけませんか。

  • 【Access】条件に該当する日付のレコードを抽出する方法について

    下記のテーブルがある場合、2002/03/10と入力すると、 ID=2のレコードを抽出したいのですが、やり方がわかりませんでした。 【テーブル(TABLE)の中身】 ID 開始日付  終了日付 1 2001/01/11 2002/02/12 2 2002/02/11 2002/03/12 3 2003/03/11 2002/04/12 テーブルの日付の列が1つ、入力する日付が2つの場合、 Betweenを使えばよいと思うのですが、 テーブルの日付の列が2つ、入力する日付が1つで、 テーブルの開始日付と終了日付の間に入力日付がある列を抽出する場合、 どうすればよいか分かりませんでした。 その為、何か良い手をご存知の方がいらっしゃいましたら、アドバイスをいただければと思います。 よろしくお願いします。

  • SQLで、指定日に日付条件で抽出方法

    商品テーブルの中で、 同じ商品のレコードが複数あります。 その多数のレコード中に、日付項目があります。 そこから、 1)指定日に、2)一番近い過去の日の1件、3)指定日を含めて、複数ある指定日及び未来の全レコード、を抽出するには、 どのようなSQL文を書けばよいでしょうか? 1.過去に複数ある日付の中から、指定日に、一番近いレコード。 2.指定日と未来に複数ある日付の中の、全ての未来の、レコード。 レコードの例) 指定日=2015-07-01 商品ID 日付 1  2015-10-11 ・・・未来 ⇒ 抽出したい 1  2015-08-02 ・・・未来 ⇒ 抽出したい 1  2015-07-01 ・・・指定日 ⇒ 抽出したい 1  2015-07-01 ・・・指定日 ⇒ 抽出したい 1  2014-01-01 ・・・過去 ⇒ 抽出しない★ 1  2015-06-03 ・・・過去 ⇒ 抽出したい 2  2015-10-11 ・・・未来 ⇒ 抽出したい 2  2015-08-02 ・・・未来 ⇒ 抽出したい 2  2015-07-01 ・・・指定日 ⇒ 抽出したい 2  2015-07-01 ・・・指定日 ⇒ 抽出したい 2  2014-01-01 ・・・過去 ⇒ 抽出しない★ 2  2015-06-03 ・・・過去 ⇒ 抽出したい

    • ベストアンサー
    • MySQL
  • access2000 クエリの抽出条件欄で・・・

    access2000で質問です。 フォームからいくつかの条件(10件くらい)を入力させて、すべてに合致した レコードを抽出します。ただし何も入力しない項目は無視し、全く条件を指定 しない場合は全抽出となります。 例えば、クエリの抽出条件のところでif文を使って、nullの場合は抽出 条件なし、null以外の場合は入力したものを抽出、みたいな事ができない ものでしょうか? よいやり方があれば教えてください。よろしくお願いします。

  • Accessでの抽出について

    Accessでのクエリーでの抽出の方法を教えてください。 たとえば「12345678」といったIDをもたせた人のデータが日付ごとにいくつかレコードがある場合に、クエリーのID欄の抽出条件欄には、「12345678」と入力すれば、その人のデータのみが表示されると思います。 そこで、 (1)その中の日付から、最新のものから3つを抽出したい場合。 (2)その中の日付から、2番目に新しいものを抽出したい場合。 において、クエリーの抽出条件になんて書いたらよいのでしょうか? できましたら、(1)(2)それぞれお答えいただければ幸いです。 どうぞよろしくお願いいたします。

  • 特殊な?日付データ条件のSELECT文で困っています。回答御願いします。

    すいません。初心者のSQL構文の質問です。 データベースはSQLServer2005です。 ID | 履歴 | 有効日付 100 | 1 | 2009/5/15 100 | 2 | 2009/7/15 100 | 3 | NULL(最新データ) 200 | 1 | NULL(最新データ) のようなテーブルがあります。 データ履歴を作成するたびに有効日付には指定した日付が入ります。 作成した最新のデータには有効日付にはNULLが入るようになってます。 有効日付はdate型です。 このテーブルでのSELECTで 例えば、 2009/6/15と入力された時(条件)には 結果: 2 |2009/7/15 2009/7/15と入力された時(条件)には 結果: 2 |2009/7/15 2009/7/16と入力された時(条件)には 結果: 3 |NULL(最新データ) という結果を取得したいのです。 どなたか詳しい方のご教授をよろしくお願い致します。

  • 不一致クエリでnullまで抽出されてしまいます

    質問です。 現在、accessにて不一致クエリを使用し、テーブルAをチェックし、 マスタテーブルに無い情報が書かれてしまっているフィールドがある場合 抽出して確認をする、というクエリを作りたいと考えています。 不一致クエリにて自動で入る「is null」を使用すると マスタテーブルに無い事が書いてあるレコードは抽出するのですが (逆になぜis nullで相違するレコードが抽出されるのか理解に苦しんでもいるのですが) is nullですので、nullのレコードも抽出されてしまいます。 抽出条件として、マスタテーブルと相違するもの&nullは抽出しない、としたいのですがお知恵を拝借出来ませんでしょうか。 よろしくお願いいたします。

  • Access 抽出条件

    クエリの抽出条件で特定のレコードを抽出したいのですが 最新の三年分のレコードデータを抽出する場合どのような式にすればよいのでしょうか? テーブルには年月フォームがあり年月が入力されています。