FROM 子句语法错误 Excel VBA

Syntax error in FROM clause Excel VBA

这是我从访问中检索数据的代码,但我总是遇到 "Run-time error '-2147217900 (80040e14)' Syntax error in FROM clause"

Sub UPDATE_REGION()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim AW As Workbook
Set AW = ActiveWorkbook
Path = AW.Path
cnn_pth = Path & "\Master File.accdb"
Set cnn = New ADODB.Connection
With cnn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .Open cnn_pth
End With
Set rst = New ADODB.Recordset
sSQL = "select Package_Nb from [package_db] where [Hubs] is null"
rst.Open Source:=sSQL, ActiveConnection:=cnn, CursorType:=adOpenForwardOnly, LockType:=adLockOptimistic, Options:=adCmdTable
end subs

当我停止调试脚本时,我在本地 Window 中找到源值,如下所示:"select * from select Package_Nb from package_db where Hubs is null"

我不知道为什么 vba 会像这样自动将 select * from 添加到源中,有人知道如何解决这个问题吗?

你的选择是错误的。这个:

Options:=adCmdTable

应该是这样的:

Options:=adCmdText

因为您传递的不是 table 名称,而是 SQL 字符串。 (当您传递 table 名称时,它会有效地转换为 SELECT * FROM table_name 语句)。