0
當運行下面的代碼時,我不斷收到一個自動化錯誤,對於我的生活我無法弄清楚原因。任何人都可以點亮一下嗎?Excel VBA - 從基於範圍的SQL中獲取數據 - 自動化錯誤
當我使用調試它突出顯示下面;
rs.Open SQLStr, cn
我看到一些引用
我已責成得到在A列第3行起基於離值從SQL數據庫的數據。的Excel工作表的
實施例:
ITEM | QTY TO PICK | QTY ON ORDER | Column 2 | Column 3 etc
PART 1 | 5 | <Data will be populated here>
PART 2 | 12 | <Data will be populated here>
該代碼通過一個命令按鈕運行。
從SQL中提取的數據將從C3開始填充。
Private Sub CommandButton2_Click()
' Create a connection object.
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
' Provide the connection string.
Dim strConn As String
'Use the SQL Server OLE DB Provider.
strConn = "Provider=SQLOLEDB;"
'Connect to the Pubs database on the local server.
strConn = strConn & "server=<server name>;INITIAL CATALOG=<DB Name>;"
'Use an integrated login.
strConn = strConn & " INTEGRATED SECURITY=sspi;"
'Now open the connection.
cn.Open strConn
'
'
ActiveSheet.Range("C3:G10000").Clear ' clear out existing data
Dim ItemNumber As String
ItemNumber = Range("A3").Value
' Create a recordset object.
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
SQLStr = "Select * from vw_WorksOrder WHERE ITEMNO = " & ItemNumber & ""
rs.Open SQLStr, cn
' Copy the records into cell A1 on Sheet1.
Sheet4.Range("C3").CopyFromRecordset rs
' Tidy up
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
不要以爲你的SQL格式正確。我認爲它應該是'SQLStr =「選擇*從vw_WorksOrder WHERE ITEMNO ='」&ItemNumber&「'」' – Zac
這很簡單,這就解決了這個問題!愚蠢的我沒有發現它!但是,數據沒有得到通過,所以回到一些頭部劃傷-_- –
我們都已經做到了:)。對於數據問題,如果不返回任何內容,請在excel vba之外運行查詢以確認查詢正在返回某些內容。如果沒有,那麼你的問題是查詢。希望這會有所幫助 – Zac