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