Hallo,
in Excel kann man mit ADODB auch Select ... from ... - Abfragen ausführen, die auf Tabellen verweisen.
Sub Abruf()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim gstrDBNameFull As String
gstrDBNameFull = "C:\Documents\TabellenZusammenführenDaten.xlsx"
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & gstrDBNameFull & ";" _
& "Extended Properties=""Excel 12.0 Macro;HDR=YES"";"
rs.Open "Select tab1.* from [Tabelle2$] Tab1 ", con, , adOpenStatic, adLockReadOnly
Tabelle5.Range("A1").CopyFromRecordset rs
rs.Close
con.Close
Set con = Nothing
Set rs = Nothing
End Sub
Für die Ausführung wird ein Verweis auf die Library Microsoft activeX Data Objects 6.0 Library (oder neuer) benötigt.
Leider funktioniert diese Variante nicht mit einem Select inner join Befehl, um mehrere Tabellen-Inhalte auswerten zu können.
Ein geeigneter Select-Befehl wäre z.B. folgender:
Select tab1.* from [Tabelle1$] Tab1 inner join [Tabelle2$] tab2 ON tab1.ArtikelNr = tab2.ArtikelNr
Beim Ausführen wird immer ein Fehler angezeigt, dass für mindestens ein Parameter kein Wert angegeben wurde.
Vielleicht weiß ja jemand anders weiter?
Folgende Quellen wurden herangezogen:
https://www.xing.com/communities/posts/zugriff-auf-eigene-excel-mappe-ueber-sql-statement-1002110456
https://www.connectionstrings.com/excel-2010/
http://www.fontstuff.com/ebooks/free/fsadoconnectexcel.pdf
http://www.office-loesung.de/ftopic48101_0_0_asc.php
VG, BigBen
|