以下のコードを実行すると、私の人生の間、オートメーションエラーが発生します。理由はわかりません。誰か光を当てることはできますか?Excel VBA - レンジベースのSQLからデータを取得 - オートメーションエラー
デバッグを使用すると、以下の点が強調表示されます。
rs.Open SQLStr, cn
私は以降の列A行3の値オフに基づいてSQL DBからデータを取得する使命を帯びてきた
にいくつかの参照を見ました。 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 =" Select * from vw_WorksOrderであるべきだと思います。ITEMNO = '"&ItemNumber&"' "' – Zac
どのように単純で、その問題は解決しました!それを見つけられない私の愚か者!しかし、データは引っ張られていないので、一部の頭部を傷つけることに戻る-_- –
我々はすべてそれをやった。:)データの問題の場合、何も返されない場合、クエリが何かを返すことを確認するために、excel vbaの外部でクエリを実行します。そうでなければ、あなたの問題はクエリです。これが役に立ちますようにお願いします。 – Zac