投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/8/3 16:35:05
> WHERE [検査日1] >= >[スタート日付] AND
「>」の指定が不自然なのは、返信時のミスでしょうか。


> なぜか日付の範囲指定を入れるとエラーになってしまいます。
せめて、何というエラーになるのかぐらいは教えてくださいな…。😅
エラーメッセージを写す際には、一字一句正確に。


> なぜか日付の範囲指定を入れるとエラーになってしまいます。
VB6 なのですよね。mdb への接続は何で行っていますか?

①DAO 3.x (Microsoft Data Access Objects Library)
②ACEDAO (Microsoft Office Access Databese Engine Object Library)
③ADO (Microsoft ActiveX Data Objects Library) + JET Provider
④ADO (Microsoft ActiveX Data Objects Library) + ACE Provider
⑤その他 (RDO など)

日付値を SQL 文字列内に直接埋め込む場合は
 WHERE [検査日1] >= #8/1/2021# AND [検査日1] <= #3/11/2022#
のように記述します。日付リテラルは mm/dd/yyyy の順で並べ、両端を # で囲みます。

https://support.microsoft.com/ja-jp/office/access-%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%A7%E6%8A%BD%E5%87%BA%E6%9D%A1%E4%BB%B6%E3%81%A8%E3%81%97%E3%81%A6%E6%97%A5%E4%BB%98%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E4%BE%8B-aea83b3b-46eb-43dd-8689-5fc961f21762#__toc358028377


日付をパラメータークエリとする場合、
①②では QueryDef オブジェクトの Parameters プロパティから指定します。
③④では Command オブジェクトの Parameters プロパティから指定します。
https://selifelog.com/blog-entry-159.html

Dim query As DAO.QueryDef, rs As DAO.Recordset
Set query = db.CreateQueryDef("", SQL)
cmd.Parameters("スタート日付").Value = #8/1/2021#
cmd.Parameters("エンド日付").Value = #3/11/2022#
Set rs = query.OpenRecordset(dbOpenDynaset)


Dim cmd As ADODB.Command, rs As ADODB.Recordset
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = cn
cmd.CommandText = SQL
cmd.Parameters.Refresh
cmd.Parameters(0).Value = #8/1/2021#
cmd.Parameters(1).Value = #3/11/2022#
Set rs = cmd.Execute


ADO 利用時に、.Parameters.Refresh でパラメーターを自動取得できない場合は、
.Parameters.Append を使ってパラメーターを追加してみてください。