访问是/否字段数据类型与布尔值不匹配

时间:2014-11-03 14:40:49

标签: vba parameters ms-access-2007 ado type-mismatch

使用excel VBA,我尝试使用ADO和Access 2007执行参数化查询。

Access中的字段定义为Yes/No,参数指定如下:

If UF_Main.obCRTN.Value Then
    .Parameters.Append .CreateParameter("p18", adBoolean, adParamInput, , False)
Else
    .Parameters.Append .CreateParameter("p18", adBoolean, adParamInput, , True)
End If

请注意,控件obCRTNOptionButton,if语句可以正常工作。

但是,当我尝试执行查询时,会引发Data type mismatch in criteria expression.错误。从查询和代码中删除上述参数时,查询执行正常。

根据documentation for ADO on W3Schools,访问权限中的DataType Enum Yes/No应为adBoolean

任何人都可以帮忙解释为什么会抛出这个错误吗?

1 个答案:

答案 0 :(得分:1)

出于某种原因,我不得不直接在Access中执行查询(这产生了一个奇怪的结果并且实际上没有添加记录)。

我在Access中直接尝试了,查询工作正常。然后我尝试从VBA中的宏,它没有执行任何问题。

奇怪