2

我在 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$)突出显示。

4

3 回答 3

1

在我的 Access 2003 和 2007 系统上,错误 #3464 的完整描述是“标准表达式中的数据类型不匹配”。数据库引擎抱怨您要求它使用的 SQL 语句。

如果[APIC Member]是文本数据类型而不是数字数据类型,请在您比较的值周围添加引号。

Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE [APIC Member] = '1';"
于 2012-04-05T05:40:24.270 回答
0

“数据类型不匹配”对我来说听起来好像您打开了错误类型的记录集。
myDB.OpenRecordset()期望 a DAO.Recordset,而你RST的可能是ADODB.Recordset.

请参阅此答案以获得更深入的解释:
在 Access 2003/2007 中打开记录集

于 2012-04-05T05:10:51.547 回答
0

尝试

Table$ = "SELECT * From WHY_Open_Cases_YTD WHERE '[APIC Member]' = '1';"

我对 DAO 有同样的问题,事实证明它不会接受 SQL 查询,直到你也引用了字段名称。

于 2016-04-15T16:01:45.473 回答