ADODB 运行时错误,执行方法失败

问题描述 投票:0回答:1

SQL 查询执行的奇怪之处。 我正在尝试从 Excel VBA 查询 Access DB 以下查询运行正常

"SELECT * FROM LL_domain"

执行这个简单查询时

"SELECT * FROM LL_domain WHERE domain = 'de"
我收到运行时错误。

我将查询复制到 Access 查询框架中,它工作正常。看来,这不是语法问题。 对于连接对象的其他提供者,我遇到了同样的错误。

这可能是什么原因?

我的一些代码:

Function foo (ByRef dBase as Object) as Boolean
Dim myConn2 as Object
    Set myConn2 = CN.getCN_Ace16(dBase.fileDB.path)
    Me.marketID = getMarketID(myConn2)
End Function

Function getCN_Ace16(ByVal dbPath As String) As Object
    Set getCN_Ace16 = CreateObject("ADODB.Connection")
    getCN_Ace16.connectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" & dbPath
End Function

Function getMarketID(ByRef myConn As Object) As String
Dim RS As Object
    myConn.Open
    Set RS = myConn.Execute("SELECT * FROM LL_domain WHERE domain = 'de'")
    ......
End Function

excel vba ms-access adodb
1个回答
0
投票

DOMAIN
Access 数据库引擎保留字

如果您将字段名称括起来或限定名称(如以下示例之一所示),您的查询可能会起作用...

SELECT * FROM LL_domain WHERE [domain] = 'de'
SELECT * FROM LL_domain WHERE LL_domain.domain = 'de'
SELECT * FROM LL_domain AS ll WHERE ll.domain = 'de'

但是,如果是我,我更愿意将字段名称更改为非保留字的名称。 Allen Browne 提供了 Access 中的问题名称和保留字的完整列表

© www.soinside.com 2019 - 2024. All rights reserved.