2016-12-08 134 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 
相关问题