DAO QueryDef的OpenRecordset方法上的数据转换错误3421 [英] Data Conversion error 3421 on OpenRecordset method of DAO QueryDef
问题描述
我想将一个参数传递给MS Access 2010中保存的查询,然后从查询中获取结果:它是我保存的查询:
I want to pass one parameter to a saved query in MS Access 2010 and then also get the results from the query: its my saved query:
SELECT Count(*)
FROM tb_KonzeptDaten
WHERE ( Konzept=[fzg_ID] and (DCMFile is null or (DCMFile='')));
这是我用来调用该查询的VBA代码:
and here is my VBA code to invoke this query:
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的类型为 Long ,而Konzept的字段为Database是 Long integer 为什么会出现此错误,我该如何解决?
also the Type of ID in VBA code is Long and the field of Konzept is Database is Long integer Why do I get this error and how can I solve it?
推荐答案
您的问题出在qry.OpenRecordset
语句上. QueryDef.OpenRecordset
的第一个参数是[Type]
(例如,dbOpenSnapshot
).您不需要提供查询名称,因为在创建QueryDef
对象时已经提供了查询名称.
Your problem is with the qry.OpenRecordset
statement. The first parameter for QueryDef.OpenRecordset
is [Type]
(e.g., dbOpenSnapshot
). You don't need to provide the query name because you already supplied that when you created the QueryDef
object.
尝试仅使用
Set rs = qry.OpenRecordset
这篇关于DAO QueryDef的OpenRecordset方法上的数据转换错误3421的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!