Member 14588284 Ответов: 1

Объединить книги excel с одним запросом


Можно ли объединить две книги excel в один запрос ?

Как: "союз всех" "вступить" "левое соединение"

Я хочу объединить EXCELFILE2 Worbook с EXCELFILE1
Листы имен "Рапор"

select F1 from [Rapor$] UNION ALL select F1 from [Rapor$] 


Что я уже пробовал:

Dim con As Object, RS As Object, sorgu As String
 Set con = CreateObject("Adodb.Connection")
  Set con1 = CreateObject("Adodb.Connection")
    Set RS = CreateObject("Adodb.RecordSet")
 con.Open "provider=microsoft.ace.oledb.12.0;data source=" & "C:\EXCELFILE1.xlsx" & ";extended properties=""excel 12.0;hdr=NO"""
        sorgu2 = "select F1 from [Rapor$]"
     
        RS.Open sorgu2, con, 1, 3
        Cells(1, "O").CopyFromRecordset RS
       RS.Close
            
       con.Close

ZurdoDev

Я не знаю, сможешь ли ты, но ты пробовал?

1 Ответов

Рейтинг:
2

Member 14588284

 Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=NO"""
 
SORGU1 = "Select * from " & ThisWorkbook.FullName & ".[Sayfa4$] "
sorgu2 = "Select Rapor$.[Fatura No] AS FISFATNO2 from D:\GidenFatura.xlsx.[Rapor$] "
sorguEX = "SELECT * FROM (" & SORGU1 & ")A LEFT JOIN (" & sorgu2 & ") B ON A.FISFATNO=B.FISFATNO2"
 Set RS = con.Execute(sorguEX)
 For X = 1 To RS.Fields.Count
     Cells(1, X + 20) = RS.Fields(X - 1).Name
   Next
 Range("U2").CopyFromRecordset RS
 RS.Close
con.Close


с этими кодами я и работал :)