2017-08-16 107 views
0

我有兩個查詢將數據從SQL Server拖入Excel。兩者都很好。我嘗試將它們聯合在一起並傳入一個參數作爲日期,現在什麼都不起作用。這裏有一篇文章的鏈接,介紹如何使用Microsoft Query並傳入參數。Excel中的參數外部數據聯合查詢

http://dailydoseofexcel.com/archives/2004/12/13/parameters-in-excel-external-data-queries/

所有我想要做的就是這個工作有一個聯合查詢。那可能嗎?或者,我需要一個VBA解決方案來實現這一點。我相信這是可行的,我只是不知道該怎麼做。我會很感激任何建議。

謝謝!

+1

在您的問題中發佈SQL –

回答

0

謝謝大家。我最終在VBA中做到了這一點。

Sub ImportFromDB() 

' 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=SERVER_NAME;INITIAL CATALOG=Data_Base;" 

'Use an integrated login. 
strConn = strConn & "Trusted_Connection=Yes;" 

'Now open the connection. 
cnPubs.Open strConn 

' Create a recordset object. 
Dim rsPubs As ADODB.Recordset 
Set rsPubs = New ADODB.Recordset 
Set sht = Worksheets("Impact Analysis") 

    With sht 
     .Range("N:U").ClearContents 
     .Range("N1").Resize(1, 8).Value = Array("CONTACT_ID", "CATEGORY", "COMPANY_CODE", "CUSTOMER_NO", "SECTOR", "DES", "ASOFDATE", "BALANCE") 
     Set rw = .Rows(2) 
    End With 

    With rsPubs 
     ' Assign the Connection object. 
     .ActiveConnection = cnPubs 
     ' Extract the required records. 
     .Open "SELECT * FROM MY_TABLE" 

     ' Copy the records into cell A1 on Sheet1. 
     Worksheets("Impact Analysis").Range("N2").CopyFromRecordset rsPubs 

     ' Tidy up 
     .Close 
    End With 

cnPubs.Close 
Set rsPubs = Nothing 
Set cnPubs = Nothing 

End Sub