Jor*_*dan 2 sql ms-access vba access-vba
我在VBA中编写一个使用ODBC并查询大型数据集的应用程序.我发现将SQL放在一个字符串 - 或连接的字符串 - 是混乱的,似乎不适用于标准字符串长度以外的任何东西.
我已经采用了使用查询构建器并使用参数保存查询的路线.我试图以编程方式访问此查询.但是,这个查询有3个参数,我找不到运气的文章和答案.
这是代码:
Dim qdf
Set qdf = CurrentDb.QueryDefs("Kilometers")
qdf.Parameters("startDate").value = startDate
qdf.Parameters("endDate").value = endDate
qdf.Parameters("workshopCode").value = garageRst!ID
Set rs = kpidb.OpenRecordset("Kilometers")
Run Code Online (Sandbox Code Playgroud)
我在sql语句中有一个名为"Kilometers"的参数,如下所示:
PARAMETERS startDate DateTime, endDate DateTime, workshopCode Text ( 255 );
Run Code Online (Sandbox Code Playgroud)
并在语句中使用方括号来表示参数.我也在访问工具中设置参数.
当我运行我的代码时,Access说它需要3个参数(错误3061)
这是我应该实现最终目标的方式吗?我究竟做错了什么?
小智 6
您需要使用您创建的QueryDef对象打开记录集.您更正的代码应如下所示:
Dim qdf
Set qdf = CurrentDb.QueryDefs("Kilometers")
qdf.Parameters("startDate").value = startDate
qdf.Parameters("endDate").value = endDate
qdf.Parameters("workshopCode").value = garageRst!ID
Set rs = qdf.OpenRecordset
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.祝你的项目好运.