【发布时间】:2014-12-30 05:46:09
【问题描述】:
使用 excel VBA,我正在尝试使用带有 Access 2007 的 ADO 执行参数化查询。
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
请注意,控件obCRTN 是OptionButton,并且 if 语句可以正常工作。
但是,当我尝试执行查询时,会引发 Data type mismatch in criteria expression. 错误。从查询和代码中删除上述参数时,查询执行良好。
根据documentation for ADO on W3Schools,Access中Yes/No的DataType Enum应该是adBoolean。
谁能帮忙解释为什么会抛出这个错误?
【问题讨论】:
-
您确定您的参数顺序正确吗?不管你怎么称呼它们,参数必须按照它们在查询中出现的顺序。
-
@Fionnuala 是的,顺序正确。
标签: vba parameters ms-access-2007 ado type-mismatch