![](/img/trans.png)
[英]Error “Object required” when running working parameterised Access SQL query (INSERT INTO) from Excel VBA
[英]Editing & Running an SQL Query in an Access database from Excel VBA
我正在嘗試編寫一個Excel VBA宏,該宏基於電子表格中的變量運行查詢。 現有數據是網絡上大型數據庫(MS Access)的一半。
由於某些原因,我的代碼運行時,沒有任何內容粘貼回我的電子表格。 您能明白為什么會這樣嗎?
Sub test()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\\network\data07\version6.mdb;"
cnn.Open ConnectionString
cnn.CommandTimeout = 900
StrQuery = "SELECT dbo_vwData_SelectAll.BusinessDate, , dbo_vwData_SelectAll.Flowdate, dbo_vwData_SelectAll.Bucket FROM dbo_vwData_SelectAll WHERE (((dbo_vwData_SelectAll.Line)=""1.1.1.4"") AND ((dbo_vwData_SelectAll.ReferenceID) Like ""rent*"");"
rst.Open StrQuery, cnn
Sheets("Sheet2").Range("A2").CopyFromRecordset rst
End Sub
上面是一個測試-我將基於電子表格中的字符串更改其他變量的"rent*"
。
提前致謝。
盜用的LIKE
運算符是MS Access SQL方言中的一個已知問題。 當使用MSAccess.exe GUI程序時, LIKE
使用星號通配符*
。 但是,與使用Excel一樣,通過ODBC使用MS Access作為后端數據庫, LIKE
使用ANSI通配符%
。 請參閱Access通配符參考中的 MS Office支持文檔。
因此,請考慮以下調整,其中包括使用單引號:
SELECT dbo_vwData_SelectAll.BusinessDate,
dbo_vwData_SelectAll.Flowdate, dbo_vwData_SelectAll.Bucket
FROM dbo_vwData_SelectAll
WHERE (((dbo_vwData_SelectAll.Line)='1.1.1.4')
AND ((dbo_vwData_SelectAll.ReferenceID) LIKE 'rent%');
為了在前端或后端接口中保持一致,請考慮ALIKE
運算符:
AND ((dbo_vwData_SelectAll.ReferenceID) ALIKE 'rent%');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.