【问题标题】:Access Yes/No Field Data Type Mismatch with Boolean Value访问是/否字段数据类型与布尔值不匹配
【发布时间】: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

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

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

根据documentation for ADO on W3Schools,Access中Yes/NoDataType Enum应该是adBoolean

谁能帮忙解释为什么会抛出这个错误?

【问题讨论】:

  • 您确定您的参数顺序正确吗?不管你怎么称呼它们,参数必须按照它们在查询中出现的顺序。
  • @Fionnuala 是的,顺序正确。

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


【解决方案1】:

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

我直接在 Access 中再次尝试,查询成功。然后我尝试了 VBA 中的宏,它执行没有问题。

奇怪

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多