2016-12-08 189 views
-2

我想使用存儲過程每天從SQL表插入數據到Excel表。它必須刪除Excel中的數據並將新數據插入到同一張表中。使用存儲過程將數據從SQL表插入到Excel

我該怎麼做?

我得到一個錯誤在此代碼

Sub Connecion() 

' Create a connection object. 
Dim cnPubs As ADODB.Connection 
Set cnPubs = 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 & "DATA SOURCE=(10.200.157.110);INITIAL CATALOG=Brickstream_DEVMGR;" 

'Use an integrated login. 
strConn = strConn & " INTEGRATED SECURITY=sspi;" 

'Now open the connection. 
cnPubs.Open strConn 



End Sub 
+0

你到目前爲止嘗試過什麼?最簡單的方法(IMO)是創建數據連接並完全跳過使用VBA。 – Gareth

+0

本質上你的問題是如何做連接,因爲SQL將是相同的,你到目前爲止有什麼? –

+0

我加入我的VBA代碼打開連接,但我得到了 –

回答

0

下面的代碼爲我工作

Sub GetDataFromADO() 
    'Declare variables' 
     Set objMyConn = New ADODB.Connection 
     Set objMyRecordset = New ADODB.Recordset 
     Dim strSQL As String 

    'Open Connection' 
     objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=10.200.157.110;Initial Catalog=Brickstream_DEVMGR;User ID=usr_bayi;Password=3Ay1usr;" 
     objMyConn.Open 

    'Set and Excecute SQL Command' 
     strSQL = "select * from DEALER_DETAILED" 

    'Open Recordset' 
     Set objMyRecordset.ActiveConnection = objMyConn 
     objMyRecordset.Open strSQL 

    'Copy Data to Excel' 
     ActiveSheet.Range("A2").CopyFromRecordset (objMyRecordset) 

End Sub 
0

易問。

Sub ADOExcelSQLServer() 

    Dim Cn As ADODB.Connection 
    Dim Server_Name As String 
    Dim Database_Name As String 
    Dim User_ID As String 
    Dim Password As String 
    Dim SQLStr As String 
    Dim rs As ADODB.Recordset 
    Set rs = New ADODB.Recordset 

    Server_Name = "your_server_name" ' Enter your server name here 
    Database_Name = "Northwind" ' Enter your database name here 
    User_ID = "" ' enter your user ID here 
    Password = "" ' Enter your password here 
    SQLStr = "SELECT * FROM Orders" ' Enter your SQL here 

    Set Cn = New ADODB.Connection 
    Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _ 
    ";Uid=" & User_ID & ";Pwd=" & Password & ";" 

    rs.Open SQLStr, Cn, adOpenStatic 

    With Worksheets("Sheet1").Range("A2:Z500") 
     .ClearContents 
     .CopyFromRecordset rs 
    End With 

    rs.Close 
    Set rs = Nothing 
    Cn.Close 
    Set Cn = Nothing 
End Sub 
相關問題