首页 文章

Access查询中的参数?

提问于
浏览
2

我在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 回答

  • 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
    

    希望能帮助到你 . 祝你的项目好运 .

相关问题