DAO QueryDef的OpenRecordset方法上的数据转换错误3421 [英] Data Conversion error 3421 on OpenRecordset method of DAO QueryDef

查看:160
本文介绍了DAO QueryDef的OpenRecordset方法上的数据转换错误3421的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将一个参数传递给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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆