Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Query langer Pfad - Laufzeitfehler 13

Query langer Pfad - Laufzeitfehler 13
07.12.2023 17:46:40
Hans1981
Hallo zusammen,
ich definiere zwei Pfade als string

Code:

Ort = Worksheets("Abfrage").Range("Quelldatei").Value

Ort2 = Worksheets("Abfrage").Range("Quellpfad").Value


Anschließend erzeuge ich eine Abfrage über:

Code:

    With Worksheets("Abfrage").ListObjects.Add(SourceType:=0, Source:=Array(Array( _

"ODBC;DSN=Excel Files;DBQ=" & Ort & ";DefaultDir=" & Ort2 & ";DriverId=1046;MaxBufferSize=2" _
), Array("048;PageTimeout=5;")), Destination:=Worksheets("Abfrage").Range("$D$27")).QueryTable


Das klappt prinzipiell auch gut, aber wenn die Pfade zu lang werden, kommt die Fehlermeldung "Laufzeitfehler 13 Typen unverträglich".

Was muss ich ändern, damit auch tiefer liegende Pfade funktionieren?

Beste Grüße
Hans

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Query langer Pfad - Laufzeitfehler 13
07.12.2023 17:53:48
Jan
Hallo

Ich frage mich warum noch mit VBA rum wuseln wo es schön ohne geht?
Wie gesagt hier reicht PQ in meinen Augen aus.
AW: Query langer Pfad - Laufzeitfehler 13
07.12.2023 18:32:40
daniel
HI
warum hast du Array im Array?
probiere mal, ob du die inneren Arrays weglassen kannst.
gemäß Anleitung ( https://learn.microsoft.com/de-de/office/vba/api/excel.listobjects.add )
braucht man die nicht und du hast ja auch nur ein Element in den inneren Arrays.

sollten tatsächlich zu tiefe Pfade die Ursache sein (manchmal schlägt die Längenbeschränkung auf 256 Zeichen durch) wäre ein Workaround, einen Teil des Pfades auf einen Laufwerksbuchstaben zu mappen und dann diesen zu verwenden, dann werden die Pfade natürlich kürzer.
das müsste dann aber alle Anwender, die das Makro verwenden, dann auch so machen.

Gruß Daniel
Anzeige
AW: Query langer Pfad - Laufzeitfehler 13
08.12.2023 08:40:02
Hans1981
Ganz herzlichen Dank. Das werde ich mal testen. Das mit den 256 Zeichen hatte ich auch schon gelesen, aber allein der Pfad ist von der Länge entfernt (Ort 2 und Ort jeweils um die 90 Zeichen).
BG
Hans
AW: Query langer Pfad - Laufzeitfehler 13
08.12.2023 15:42:43
Hans1981
Mein Versuch das doppelte Array zu entfernen:
With Worksheets("Abfrage").ListObjects.Add(SourceType:=0, Source:=Array("ODBC;DSN=Excel Files;DBQ=" & Ort & ";DefaultDir=" & Ort2 & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"), Destination:=Worksheets("Abfrage").Range("$D$27")).QueryTable


Hier kommt aber nun auch ein Laufzeitfehler 13. Das liegt aber nicht am Pfad, weil im alten Code (leicht verbessert) funktioniert die Abfrage:

With Worksheets("Abfrage").ListObjects.Add(SourceType:=0, Source:=Array(Array("ODBC;DSN=Excel Files;DBQ=" & Ort & ";DefaultDir=" & Ort2 & ";DriverId=1046;MaxBufferSize=2"), Array("048;PageTimeout=5;")), Destination:=Worksheets("Abfrage").Range("$D$27")).QueryTable
Anzeige
AW: Query langer Pfad - Laufzeitfehler 13
11.12.2023 15:45:29
Hans1981
Hallo zusammen,
hat niemand eine Idee? Kann zumindest jemand auf meine Syntax des letzten Posts schauen und sagen, warum das entfernen des doppelten Arrays nicht funktioniert?
Viele Grüße und danke euch
Hans
AW: Query langer Pfad - Laufzeitfehler 13
11.12.2023 16:53:45
Hans1981
Hallo zusammen,.
Sorry, ich konnte das Problem reduzieren auf:
With Worksheets("Abfrage").ListObjects.Add(SourceType:=0, Source:=Array("ODBC;DSN=Excel Files;DefaultDir=" & Ort2 & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"), Destination:=Worksheets("Abfrage").Range("$D$27")).QueryTable


Der Code scheint zu funktionieren und das doppelte Array ist verschwunden. Es bleibt aber die Frage, warum Bei einer gewissen Länge/Tiefe des Deteipfads der Code auf Fehler läuft.
Viele Grüße
hans
Anzeige
AW: Query langer Pfad - Laufzeitfehler 13
07.12.2023 18:09:51
Hans1981
Leider nein. Es werden zahlreiche Excel-Dateien per Query eingelesen und ausgewertet. Dies erfolgt über vba. Der hier vorliegende Code ist ein Auszug. Gehen wir einfach mal davon aus, dass vba notwendig ist. Noch ein Hinweis: Der Pfad ist ein Netzwerkpfad und sicherlich 9 Ebenen tief. Reduziere ich den Pfad (bspw. Ebene 6), funktioniert die Abfrage. Ich farge mich, ob ich das Datenformat des PFads o.ä. ändern muss, damit der Code auch bei längeren Pfaden funktioniert.
AW: Query langer Pfad - Laufzeitfehler 13
07.12.2023 18:30:41
Jan
Hallo
Ich bleibe bei meiner Aussage PQ reicht.
Wenn du aber der Meinung bist es trotzdem mit VBA zu lösen dann bin ich raus , mit VBA gebe ich mir kaum noch Mühe wenn dann nur für mich privat.
Anzeige
AW: Query langer Pfad - Laufzeitfehler 13
08.12.2023 12:36:08
Hans1981
Aus Interesse: Wie würdest du das denn lösen, wenn mehrere tausend Excel-Tabellen eingelesen und jeweils ausgewertet werden müssen?
AW: Query langer Pfad - Laufzeitfehler 13
08.12.2023 21:17:18
Jan
Hallo

Kann ich selber kaum glauben das so viele Dateien sein sollen, aber sei es drum.
Möglichkeiten gibt es immer man muss dann nur etwas kreativer denken.
Eventuell mehrere Dateien draus machen wo sie zusammen gefügt wären und später diese wieder zusammenfügen oder oder .....

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige