アプリ版:「スタンプのみでお礼する」機能のリリースについて

ACCESSにて
選択クエリーでDateadd関数を使用して日付の何か月後を取得出来ましたが、
その取得出来た日付(何か月後)に抽出条件を設定して、
特定の日付や範囲で絞り込むことが出来ません。

「抽出条件でデータ型が一致しません。」とメッセージがでます。


どのうようにすればデータ型を一致させることが出来ますか?

よろしくお願いします。

質問者からの補足コメント

  • 以下にてテーブル、クエリを作成し、
    売上日に期間_月の月数を足して終了日を表示しています。

    テーブル
    フィールド名:
    売上日(データ型:日付/時刻型)
    期間_月 (通貨型)

    クエリ
    終了日:DateAdd("m",[保守期間_月],[売上日])

    例)テーブル
      売上日 2016/4/13
      期間_月 12

      クエリ
      終了日 2017/4/13

      補足日時:2017/07/13 10:52
  • 上記クエリにて”終了日”の絞込みを行うために、
    a)日付フィルターにて”今年”を選択した場合
    または
    b)”終了日”の抽出条件を
      Sand_Dollarさんの
       =#2017/04/13#をコピペした場合
      「抽出条件でデータ型が一致しません。」と表示されます。

    Sand_Dollarさんの
    c)”Between #2017/04/01# And #2017/04/30#”をコピペして実行すると、
    抽出できました。

    a)、b)では抽出できなくて、
    c)で抽出できた
    これは何が影響しているのでしょうか?

    よろしくお願いします。

      補足日時:2017/07/13 10:53
  • クエリは選択クエリです。

    テーブル
    フィールド名:期間_月
    にはデータなしがあります。

    クエリにて
    期間_月を
    抽出条件:Is Not Null で絞込みを行っています。

    クエリ
    終了日:DateAdd("m",[期間_月],[売上日])
    とした場合

    フィールド名:期間_月にデータなし(null)が存在することで、

    「抽出条件でデータ型が一致しません。」となるのでしょうか?

    とすれば、null混在データの場合、
    抽出方法はございますか?

    よろしくお願いします。

      補足日時:2017/07/13 11:32

A 回答 (2件)

期間_月がNullの場合、DateAdd関数で「#エラー」が返されているのが原因なのかな?


私も詳しい理由の説明はできないのですが、とりあえず以下の方法で「データ型が一致しません」は無くなりました。

クエリの
終了日:DateAdd("m",[期間_月],[売上日])
これを
終了日:IIf([期間_月] Is Null,Null,DateAdd("m",[期間_月],[売上日])) にしてみてください。

これで「#2017/04/13#」でも抽出できました。
また、終了日を日付で抽出するのであれば、上記の式ですと
「抽出条件:Is Not Null で絞込み」は必要ないかもしれません。

正確な理由説明ができずに申し訳ありません。
    • good
    • 1
この回答へのお礼

Sand_Dollarさん

いつも早々にご回答いただきありがとうございます。
お礼のご返信が遅くなり失礼いたしました。

ご回答いただいた上記の「終了日」、
IIfによる期間_月でnull値の場合にnullにすることで、終了日のデータ型を揃えるということですね。
従って、終了日のデータを日付として認識することが出来ました。
また、終了日を日付フィルターで絞り込むことも出来ました。

不必要となった抽出条件でIs Not Nullも外してます。

今後「終了日」と同様の設定を行うにあたり前進することが出来とても助かりました。

どうもありがとうございました。

お礼日時:2017/07/18 07:59

設定された抽出条件を具体的に書かれた方が回答が付きやすいと思います。



試しに、テーブルの日付フィールドに以下のようなデータを入れ、
2017/01/01
2017/02/01
2017/02/10
2017/03/01

以下のクエリを作った時
日付 │ 日付2: DateAdd("m",2,[日付]) │

日付2の抽出条件を
=#2017/04/01#
Between #2017/04/01# And #2017/04/30#
このどちらでも抽出できました。
    • good
    • 1
この回答へのお礼

Sand_Dollarさん

ご回答ありがとうございます。

以下にてテーブル、クエリを作成し、
売上日に期間_月の月数を足して終了日を表示しています。

テーブル
フィールド名:
売上日(データ型:日付/時刻型)
期間_月 (通貨型)

クエリ
終了日:DateAdd("m",[保守期間_月],[売上日])


例)テーブル
  売上日 2016/4/13
  期間_月 12

  クエリ
  終了日 2017/4/13


上記クエリにて”終了日”の絞込みを行うために、
a)日付フィルターにて”今年”を選択した場合
または
b)”終了日”の抽出条件を
  Sand_Dollarさんの
   =#2017/04/13#をコピペした場合
 
 「抽出条件でデータ型が一致しません。」と表示されます。


Sand_Dollarさんの
c)”Between #2017/04/01# And #2017/04/30#”をコピペして実行すると、
抽出できました。

a)、b)では抽出できなくて、
c)で抽出できた
これは何が影響しているのでしょうか?

よろしくお願いします。

お礼日時:2017/07/13 10:40

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

このQ&Aを見た人はこんなQ&Aも見ています