Access查询中的参数?

时间:2014-08-14 16:28:45

标签: sql vba ms-access 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")

我在sql语句中有一个名为“Kilometers”的参数,如下所示:

PARAMETERS startDate DateTime, endDate DateTime, workshopCode Text ( 255 );

在语句中使用方括号表示参数。我也在访问工具中设置参数。

当我运行我的代码时,Access表示它需要3个参数(错误3061)

这是我实现目标的方式吗?我做错了什么?

1 个答案:

答案 0 :(得分: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

希望它有所帮助。祝你的项目好运。