我在Access数据库中有VBA代码。我收到错误消息“运行时错误3464 - 表达式中的数据类型不匹配”,我的代码中包含以下行。这条线的正确格式是什么?我确定它是一个简单的引号或线条中缺少的东西。
在数据库中,有一个名为APIC成员的列。我只想要单元格中列出“1”的记录。
Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE WHY_Open_Cases_YTD.[APIC Member] = 1;"
Set RST = myDB.OpenRecordset(Table$)
请告诉我我做错了什么。当我调试消息时,我突出显示Set RST = myDB.OpenRecordset (Table$)
。
答案 0 :(得分:1)
在我的Access 2003和2007系统上,错误#3464的完整描述是“条件表达式中的数据类型不匹配。”数据库引擎抱怨您要求它的SQL语句使用
如果[APIC Member]
是文本数据类型而不是数字数据类型,请在您比较的值周围添加引号。
Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE [APIC Member] = '1';"
答案 1 :(得分:0)
“数据类型不匹配”对我来说听起来好像是在打开错误类型的Recordset
myDB.OpenRecordset()
需要DAO.Recordset
,RST
可能是ADODB.Recordset
。
请参阅此答案以获得更深入的解释:
Open recordset in Access 2003/2007
答案 2 :(得分:0)
尝试
Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE '[APIC Member]' = '1';"
我遇到了与DAO相同的问题,结果是在你引用字段名称之前它不会接受SQL查询。