Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 8.1 : Microsoft 365)
数値型日付をクエリにて抽出する方法
投稿日時: 22/02/24 18:12:41
投稿者: jimusyo

お世話になります。
 
テーブル(table_A)に年・月・日がそれぞれ数値型で設定されています。
 
フォーム(Form_A)で「から(年月日)」「まで(年月日)」にて
上記テーブルの数値型となっているものを範囲指定して抽出したいです。
「から」「まで」は非連結テキストボックスで、
・書式、定型入力ともに日付(S)
 
そこで、クエリ上にて
日付:DateSerial([年],[月],[日])
とし、クエリの抽出条件をBetween Forms!Form_A!から and Forms!Form_A!まで
と記述しましたが、結果は
「式が正しく入力されていないか、複雑すぎるために評価できません」
と表示され、検索できません。
 
クエリのフィールドを「日付: CDate(DateSerial([年],[月],[日]))」
としましたが、結果は同じ
 
年・月・日がそれぞれ分かれており、
これを日付範囲(から、まで)にて抽出するにはどのようにしたら
よろしいでしょうか。

回答
投稿日時: 22/02/24 18:45:55
投稿者: よろずや

Between CDate(Forms!Form_A!から) and CDate(Forms!Form_A!まで)

回答
投稿日時: 22/02/24 19:06:17
投稿者: sk

引用:
テーブル(table_A)に年・月・日がそれぞれ数値型で設定されています。

引用:
そこで、クエリ上にて
日付:DateSerial([年],[月],[日])
とし、クエリの抽出条件をBetween Forms!Form_A!から and Forms!Form_A!まで
と記述しましたが、結果は
式が正しく入力されていないか、複雑すぎるために評価できません
と表示され、検索できません。

[年],[月],[日]のいずれかの値が Null であるレコードが
[table_A]に存在しているからでは。

回答
投稿日時: 22/02/24 19:11:37
投稿者: sk

よろずや さんの引用:
Between CDate(Forms!Form_A!から) and CDate(Forms!Form_A!まで)

この場合は、いずれかの非連結テキストボックスの値が
Null である際には逆にエラーの原因となります。
 
それぞれのクエリパラメータのデータ型を
明示的に日付/時刻型として定義する方がよいでしょう。

投稿日時: 22/02/25 10:42:33
投稿者: jimusyo

よろずや様
sk様
 
 ご回答いただきありがとうございました。
 
 よろずや様から回答をいただいた方法ではやはりエラーが返され、
 sk様が言われたとおり、Nullが存在しておりました。
 
 Nullを除外する事で無事範囲指定でのデータ抽出が可能となりました。
 
大変ありがとうございました。