Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Abfrage per VBA laden

Forumthread: Abfrage per VBA laden

Abfrage per VBA laden
12.03.2025 09:46:44
Edis
liebe Forumsmitglieder,

ich möchte eine bestehende Abfrageverbindung in ein neu erstelltes Tabellenblatt laden.
Dafür habe ich mit dem Makrorekorder den Code erstellt.
Leider bekomme ich beim Ausführen die Fehlermeldung 1004 "Die Arbeitsblattdaten für eine Tabelle müssen sich auf demselben Blatt wie die Tabelle befinden."
Wo kann der Fehler liegen?



Worksheets.Add.name = "export"
Worksheets("export").Activate
Application.CutCopyMode = False
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Anfügen1;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Anfügen1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Anfügen1"
.Refresh BackgroundQuery:=False
End With


Vielen Dank für eure Unterstützung!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage per VBA laden
12.03.2025 17:46:01
Oberschlumpf
Hi,

die 2. Codezeile ist überflüssig, da ja in der vorherigen Zeile ein Tabellenblatt deiner Datei hinzugefügt und somit automatisch zum - aktiven - Tabellenblatt wird...da brauchst du dann nicht noch mal .Activaten.

Weiter kann zumindest ich nicht helfen, da bei mir deine Source=$Workbook$ unbekannt ist = bei mir steigt der Code in der .Refresh-Zeile mit Fehler 1004 aus.

Aber vllt konnte ich ja mit dem 1. Tipp helfen, oder?

Ciao
Thorsten
Anzeige
AW: Abfrage per VBA laden
12.03.2025 19:26:34
Yal
Hallo Edis,

ich vermute, dass das Problem daran liegt, dass Du versuchst eine zweite Tabelle mit dem Name der erste Tabelle zu erzeugen. Geht nicht. Tabellennamen müssen "unique" sein.

lösche diese Zeile:
.ListObject.DisplayName = "Anfügen1"

VG
Yal

Forumthreads zu verwandten Themen