- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access クエリのデータ型について)
Access クエリのデータ型について
このQ&Aのポイント
- AccessでPablic変数を日付範囲指定、クエリの抽出条件に指定したのですが、「抽出条件でデータ型が一致しません。」とのエラーメッセージで抽出出来ません。
- デバッグの為、"GetDate()"の戻り値を、メッセージボックスで表示してますが、戻り値は正常とおもわれますが、「抽出条件でデータ型が一致しません。」でクエリが実行できません。
- どうすれば、日付範囲をPablic変数から指定出来るか、お教え頂けましたら幸いです。ちなみに、Pablic変数にしているのは、他のクエリでもこの日付範囲を使いたい為です。もし、ほかに良い処理方法が有れば、ご教授ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
GetDate = ">=#" & sDate & "# And <=#" & eDate & "#" と文字列を & で結合してますので、GetDate の返り値は文字列になります。 おそらく日付型のフィールドの抽出条件にこの関数を設定していると思われますので、当然「抽出条件でデータ型が一致しません。」とのエラーになります。 >=#2013/1/1# And <=#2014/1/1# というような式を返したいと期待しているのだと思いますが、 そもそも関数は値しか返すことはできません。 Public変数を使いたいのなら、 Public sDate As Date Public eDate As Date Public Function GetSDate() As Date GetSDate = sDate End Function Public Function GetEDate() As Date GetEDate = eDate End Function として、クエリの日付型フィールドの抽出条件の式を下記のようにします。 >= GetSDate And <= GetEDate
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.2
投稿時にMsgBoxのWhere文を書いて欲しいですね。 Date型なんだからFormat文で整形でしょうね。 Where条件に#で囲んだ日付を書く時、元が英語圏のソフトだけに mm/dd/yyyy が良いらしい。
質問者
お礼
そうなんです、Format文も考えたんですが、参考に出来るサイトが見つからず、安易に"&"で結合して返そうしました。 ご意見ありがとうございました。
お礼
意味もちゃんと理解しないで、"&"で安易に結合していたのが原因でした。 お教え頂いた内容で、完璧に実現できました。 ありがとうございます。