为什么我的VBA/SQL查询说我错过了一个运营商?

bil*_*ann 0 sql ms-access vba access-vba

有人能发现语法错误吗?我觉得我拥有必要的OpenRecordset方法的所有运算符.

The error says "Syntax error (missing operator) in query expression '(Date: = 10/31/2014)'.

class变量等于该字符串"007-14 A"

下面是错误来自的代码行:

Set rec = db.OpenRecordset("SELECT '" & class & "' FROM tblCalendar WHERE (Date: = 10/31/2014)")

我是否对错误的内容有错误的引用,或者它可能与字段Date的标题中的分号有关?

class是我想要选择的字段.所以实际的字段标题是007-14 A.

Chr*_*ter 7

这里有3个错误.'007-14 A'并且Date:不是合法的列名,并且10/31/2014不是合法的日期字面值.

将非法列名包装在方括号中,例如[007-14 A][Date:]

将日期文字值格式化为 #10/31/2014#

如果该日期文字格式不起作用,请尝试 #31 Oct 2014#

注意:MS Access使用JET引擎SQL方言,它看起来与VB非常相似(我猜它正在利用VBA引擎进行解析).一般来说,您可以在VB6,VBA,VBScript,ADO断开连接的记录集过滤器和MS Access查询中使用相同的文字语法和内置函数.然而,有一些微妙的差异可能会让你失望.