Vba DAO QueryDef的OpenRecordset方法上的数据转换错误3421

Vba DAO QueryDef的OpenRecordset方法上的数据转换错误3421,vba,ms-access,ms-access-2010,Vba,Ms Access,Ms Access 2010,我想将一个参数传递给MS Access 2010中保存的查询,然后还可以从查询中获取结果:It’s my saved query: SELECT Count(*) FROM tb_KonzeptDaten WHERE ( Konzept=[fzg_ID] and (DCMFile is null or (DCMFile=''))); 下面是调用此查询的VBA代码: Dim db As DAO.Database Dim qry As DAO.QueryDef Set qry = db.Query

我想将一个参数传递给MS Access 2010中保存的查询,然后还可以从查询中获取结果:It’s my saved query:

SELECT Count(*)
FROM tb_KonzeptDaten
WHERE ( Konzept=[fzg_ID] and (DCMFile is null or (DCMFile='')));
下面是调用此查询的VBA代码:

Dim db As DAO.Database
Dim qry As DAO.QueryDef
Set qry = db.QueryDefs("Test_qr_emptyDCM")
qry.Parameters("fzg_ID").Value = ID
Set rs = qry.OpenRecordset("Test_qr_emptyDCM")
VBA代码中的ID类型也是长的,Konzept的字段是数据库,是长整数
为什么会出现此错误,如何解决

您的问题在于
qry.OpenRecordset
语句。
QueryDef.OpenRecordset
的第一个参数是
[Type]
(例如,
dbOpenSnapshot
)。您不需要提供查询名称,因为在创建
QueryDef
对象时已经提供了该名称

试着使用just

Set rs = qry.OpenRecordset