Подключение к двум источникам данных для подключения Excel SQL - PullRequest
0 голосов
/ 19 октября 2018

У меня есть SQL-запрос, который я могу успешно запустить в SSMS.Это, однако, требует от меня подключения к двум различным источникам.Я назвал источники простым именем, поэтому я не делюсь данными компании.

SELECT TOP (1000) 
    tbl1.[PartNumber],
    tbl1.[PartDescription],
    tbl1.[PartDescriptionLong],
    tbl1.[PhaseNumber],
    tbl2.FULL_NAME
FROM 
   [hidden1].[hid1].[table1Name] AS tbl1
   LEFT JOIN
   [hidden2].[hid2].[table2Name] as tbl2
   ON
   tbl2.USER_NAME=tbl1.ProductManager

В других случаях я мог использовать приведенный ниже код в Excel VBA для подключения к источникуданных, а затем выполнить запрос, который затем заполняет таблицу.

Dim wb As Workbook: Set wb = Application.Workbooks.Add
Dim ws As Worksheet: Set ws = wb.Sheets(1)
Dim wkStation As String: wkStation = VBA.Environ("computername") 

With ws.ListObjects.Add( _
                    SourceType:=xlSrcExternal, _
                    Source:=Array("OLEDB;", _
                                  "Provider=SQLOLEDB.1;", _
                                  "Integrated Security=SSPI;", _
                                  "Persist Security Info=True;", _
                                  "Data Source=SourceAddress;", _
                                  "Use Procedure for Prepare=1;", _
                                  "Auto Translate=True;", _
                                  "Packet Size=4096;", _
                                  "Workstation ID=" & wkStation & ";", _
                                  "Use Encryption for Data=False;", _
                                  "Tag with column collation when possible=False;", _
                                  "Initial Catalog=catalogName"), _
                    Destination:=ws.Range("A1")).QueryTable
    .CommandType = xlCmdSql
    .CommandText = sql
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .Refresh BackgroundQuery:=False
End With

10-я строка ниже это "Data Source=SourceAddress;", и это прекрасно работает, когда у меня есть только 1 источник данных.Но когда у меня есть 2, я понятия не имею, что делать.Любая помощь будет высоко ценится.

...