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
语句)。
这是我从访问中检索数据的代码,但我总是遇到 "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
语句)。