Hallo zusammen,
ich möchte gerne, wie oben beschrieben, mittels VBA und ADO auf eine intelligente Tabelle in einer anderen Excel Datei zugreifen. Die intelligente Tabelle liegt auf dem Tabellenblatt "Tabelle1".
Hier ist der Code:
Option Explicit
Dim connect As Object ' Verbindung
Dim rst As Object ' Recordset
Dim file As String ' Datei
Dim strConnection As String ' Verbindungszeichenfolge
Dim sql As String ' SQL-Abfrage
Dim tabelle As String ' Tabellenname
Sub query()
' Verbindung herstellen
Call ado_auf_excel_dateien
' Recordset mit Daten füllen
sql = "SELECT Modul_1, Modul_2, Modul_3 FROM [tab_rollout$]"
rst.Open sql, connect
' Daten ausgeben
Do While Not rst.EOF
MsgBox rst(0)
MsgBox rst(1)
MsgBox rst(2)
rst.MoveNext
Loop
rst.Close
End Sub
Sub ado_auf_excel_dateien()
' Dateiname und Pfad
file = "\\Pfad\zur\Netzwerkdatei\Netzwerkdatei.xlsx"
' Verbindungszeichenfolge für Excel-Dateien
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & file & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"""
' Tabellenblattname
tabelle = "Tabelle1"
' Verbindung herstellen
Set connect = CreateObject("ADODB.Connection")
connect.Open strConnection
' Recordset erstellen
Set rst = CreateObject("ADODB.Recordset")
End Sub
Es erscheint der Fehler: "'tab_rollout' ist kein gültiger Name. Stellen Sie sicher, dass der Name nicht zu lang ist und keine ungültigen Zeichen..."
Ich habe bereits den Namen der intelligenten Tabelle überprüft, und er ist definitv richtig. Ich habe ausserdem versucht, über einen benannten Bereich zu gehen. Klappt auch nicht.
Wo bin ich zu blöd?
Vielen Dank für euer Feedback und eure Hilfe...
Grüße
Christoph
|