使用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
请注意,控件obCRTN
是OptionButton
,if语句可以正常工作。
但是,当我尝试执行查询时,会引发Data type mismatch in criteria expression.
错误。从查询和代码中删除上述参数时,查询执行正常。
根据documentation for ADO on W3Schools,访问权限中的DataType Enum
Yes/No
应为adBoolean
。
任何人都可以帮忙解释为什么会抛出这个错误吗?
答案 0 :(得分:1)
出于某种原因,我不得不直接在Access中执行查询(这产生了一个奇怪的结果并且实际上没有添加记录)。
我在Access中直接尝试了,查询工作正常。然后我尝试从VBA中的宏,它没有执行任何问题。
奇怪