AccessでPablic変数を日付範囲指定、クエリの抽出条件に指定したのですが、「抽出条件でデータ型が一致しません。」とのエラーメッセージで抽出出来ません。
【処理フロー】
1.フォームで、開始日と終了日をPublic変数へ格納
2.データ抽出クエリの日付条件に"GetData()"Public Functin VBAで変数を格納した値をクエリの抽出条件に返す。
《変数》
'開始日の宣言
Public sDate As Date
'終了日の宣言
Public eDate As Date
《GetData()》
Public Function GetDate()
MsgBox "開始日は、" & sDate & vbCrLf & "終了日は、" & eDate
GetDate = ">=#" & sDate & "# And <=#" & eDate & "#"
MsgBox ("Where文は、" & GetDate)
End Function
デバッグの為、"GetDate()"の戻り値を、メッセージボックスで表示してますが、戻り値は正常とおもわれますが、「抽出条件でデータ型が一致しません。」でクエリが実行できません。
ここを参考に、上記仕様にしました。
http://www.tsware.jp/tips/tips_369.htm
どうすれば、日付範囲をPablic変数から指定出来るか、お教え頂けましたら幸いです。
ちなみに、Pablic変数にしているのは、他のクエリでもこの日付範囲を使いたい為です。
もし、ほかに良い処理方法が有れば、ご教授ください。
No.1ベストアンサー
- 回答日時:
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
意味もちゃんと理解しないで、"&"で安易に結合していたのが原因でした。
お教え頂いた内容で、完璧に実現できました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Access】先月のデータを抽出...
-
ACCESS 複数のフィールドのチ...
-
AccessからExcelへの条件付エク...
-
access(アクセス):パラメータ...
-
Accessクエリで年月フィールド...
-
Accessのクエリーのゼロデータ...
-
テーブルの差分をとる結合
-
sqlserverで書式チェックしたい
-
access2019 チェックボックスと...
-
「#エラー」の回避
-
エクセルで表を作り、ピボット...
-
アクセスのレポートを印刷する...
-
レポートのラベルなどの非表示...
-
アクセスで入力したデータの順...
-
Access チェックボックスを使...
-
差込印刷で顧客別に複数行のデ...
-
アクセスのレポートのヘッダー...
-
アクセスでのレポートで両面印...
-
FileMakerで、フィールドの値が...
-
「フィールド更新」が表示されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessクエリで特定の行を削除...
-
Access2007でSQLの複数列副問い...
-
アクセスのフィルタ nullにつ...
-
Accessのクエリーのゼロデータ...
-
Access クエリで連結する文字...
-
access2019 チェックボックスと...
-
AccessからExcelへの条件付エク...
-
Access:固定長文字列ファイル...
-
accessで空白の時の抽出
-
access(アクセス):パラメータ...
-
Accessのデータの一部を削除す...
-
SQLのLIKE検索で清音と濁音/半...
-
Accessのクエリで1フィールドの...
-
アクセスで任意の件数を抽出す...
-
アクセスのクエリ…
-
Access Left$関数で全角半角が...
-
Accessクエリ特定文字列のカウ...
-
Accessクエリで年月フィールド...
-
accessで年代別抽出方法
-
ACCESS クエリ 抽出条件が多い場合
おすすめ情報