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

ActiveWorkbook.Queries.Add mit Parameter

Forumthread: ActiveWorkbook.Queries.Add mit Parameter

ActiveWorkbook.Queries.Add mit Parameter
19.06.2020 14:35:11
Michael
Hallo Zusammen,
ich möchte gerne eine Queryabfrage mit Parameter automatisieren. Aktuell habe ich folgenden Code:
ActiveWorkbook.Queries.Add Name:="Page001", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Pdf.Tables(File.Contents(""c:\DateinameX.pdf""), [Implementation=""1.1""])," & Chr(13) & "" & Chr(10) & " Page1 = Quelle{[Id=""Page001""]}[Data]," & Chr(13) & "" & Chr(10) & " #""Höher gestufte Header"" = Table.PromoteHeaders(Page1, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & " #""Geänderter T" & _
"yp"" = Table.TransformColumnTypes(#""Höher gestufte Header"",{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""Column5"", type text}, {""Report-ID 2540"", type text}, {""Column7"", Int64.Type}, {""Column8"", type text}, {""Column9"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
Statt die komplette URL anzugeben, möchte ich eine Variable nutzen für den Dateinamen, um weitere PDFs einlesen zu können. Das geht aber einfach nicht. Weiß jemand eine Lösung?
Besten Dank.
Michael H
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Gute Beschreibung: geht einfach nicht (omg+owT)
19.06.2020 14:44:20
EtoPHG

AW: Gute Beschreibung: geht einfach nicht (omg+owT)
19.06.2020 14:46:56
Michael
Schade. Danke für die schnelle Antwort.
VG Michael H
AW: Powerquery mit Parameter versehen
19.06.2020 14:55:38
EtoPHG
Hallo,
Das wäre vielleicht ein aussagekräftiger Betreff gewesen, denn dein Geschreibsel deutet auf die Anwendung von Powerquery hin. Dafür gibt x Beispiele im Netz z.B. dieses hier
Gruess Hansueli
Anzeige
AW: Powerquery mit Parameter versehen
19.06.2020 14:59:01
Michael
Hallo,
danke, dass sehe ich mir mal an. Ich beschäftige mich ganz frisch damit. Da ist einem noch nicht so klar, welche Fragen man genau stellen muss.
VG Michael H
AW: ActiveWorkbook.Queries.Add mit Parameter
19.06.2020 15:01:02
Daniel
Hi
Warum sollte das nicht gehen?
An der Stelle wo die Variable eingefügt werden soll den Fixen Textteil mit einfachem Anführungszeichen begrenzen und die Variable mit " & " verketten, so wie mit den Chr(13) zuvor.
Gruß Daniel
Anzeige
Schon gemerkt, dass das M und nicht VBA ist? (owT)
19.06.2020 15:14:35
EtoPHG

AW: Schon gemerkt, dass das M und nicht VBA ist? (owT)
19.06.2020 15:43:22
Michael
Es geht doch!
Ich habe jetzt so den String gebrochen.
ActiveWorkbook.Queries.Add Name:="Page001", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Pdf.Tables(File.Contents(""" & Dateiname2 & """), [Implementation=""1.1""])," & Chr(13) & "" & Chr(10) & " Page1 = Quelle{[Id=""Page001""]}[Data]," & Chr(13) & "" & Chr(10) & " #""Höher gestufte Header"" = Table.PromoteHeaders(Page1, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & " #""Geänderter T" & _
"yp"" = Table.TransformColumnTypes(#""Höher gestufte Header"",{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""Column5"", type text}, {""Report-ID 2540"", type text}, {""Column7"", Int64.Type}, {""Column8"", type text}, {""Column9"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
Danke! VG Michael H
Anzeige
Funktioniert das Zusammensetzen von Texten aus
20.06.2020 12:28:55
Texten
Teiltexten und Variablen in M anders als in VBA?
Oder was ist der Sinn deiner Frage?
AW: ActiveWorkbook.Queries.Add mit Parameter
19.06.2020 15:25:15
Michael
Hallo Daniel,
leider nicht. Ich habe jetzt mehrere Variationen durch.
VG Michael H
AW: ActiveWorkbook.Queries.Add mit Parameter
19.06.2020 15:29:49
Michael
Hallo Daniel,
leider nicht. Ich habe jetzt mehrere Variationen durch.
VG Michael H
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ActiveWorkbook.Queries.Add mit Parametern in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Queryabfrage mit Parametern zu automatisieren, kannst Du den folgenden VBA-Code verwenden. Dies ermöglicht es Dir, eine Variable für den Dateinamen zu nutzen, um verschiedene PDF-Dateien zu lesen. Hier ist der grundlegende Aufbau des Codes:

Sub QueryMitParameter()
    Dim Dateiname2 As String
    Dateiname2 = "c:\DeinPfad\DateinameX.pdf"

    ActiveWorkbook.Queries.Add Name:="Page001", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & _
        "    Quelle = Pdf.Tables(File.Contents(""" & Dateiname2 & """), [Implementation=""1.1""])," & Chr(13) & "" & Chr(10) & _
        "    Page1 = Quelle{[Id=""Page001""]}[Data]," & Chr(13) & "" & Chr(10) & _
        "    #""Höher gestufte Header"" = Table.PromoteHeaders(Page1, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & _
        "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Höher gestufte Header"",{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""Column5"", type text}, {""Report-ID 2540"", type text}, {""Column7"", Int64.Type}, {""Column8"", type text}, {""Column9"", type text}})" & Chr(13) & "" & Chr(10) & _
        "in" & Chr(13) & "" & Chr(10) & _
        "    #""Geänderter Typ"""
End Sub

Stelle sicher, dass Du den Dateipfad zu Deiner PDF-Datei anpasst. Mit diesem Code kannst Du die ActiveWorkbook.Queries.Add Methode verwenden, um eine neue Query mit einem Parameter zu erstellen.


Häufige Fehler und Lösungen

  1. Fehler: "Der Dateipfad ist ungültig"

    • Lösung: Überprüfe den Dateipfad und stelle sicher, dass die Datei existiert und der Pfad korrekt eingegeben ist.
  2. Fehler: "Das M-Skript konnte nicht ausgeführt werden"

    • Lösung: Achte darauf, dass die Syntax des M-Codes korrekt ist. Verwende die &-Operatoren richtig, um Textteile und Variablen zu verketten.
  3. Fehler: "Query gibt leere Ergebnisse zurück"

    • Lösung: Stelle sicher, dass die Query-Parameter korrekt sind und dass die Daten in der PDF-Datei vorhanden sind.

Alternative Methoden

Falls Du keine VBA verwenden möchtest, kannst Du auch Power Query direkt in Excel verwenden, um die Daten zu importieren und mit Parametern zu arbeiten. In Power Query kannst Du Parameter definieren und diese in Deinen Abfragen nutzen, ohne VBA zu schreiben.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die ActiveWorkbook.Queries.Add Methode effektiv nutzen kannst:

  1. Einfaches Beispiel mit festem Dateinamen:

    ActiveWorkbook.Queries.Add Name:="FixedQuery", Formula:= "let ... in ... "
  2. Beispiel mit Benutzerinteraktion:

    Dim Dateiname2 As String
    Dateiname2 = InputBox("Gib den Pfad zur PDF-Datei ein:")
    ActiveWorkbook.Queries.Add Name:="UserQuery", Formula:= "let ... in ... "

Tipps für Profis

  • Nutze die ActiveWorkbook.Queries Sammlung, um alle Queries im aktuellen Workbook zu verwalten.
  • Experimentiere mit der thisworkbook.queries Methode, um auf Queries in einem bestimmten Workbook zuzugreifen.
  • Achte auf die korrekte Verwendung von Chr(13) und Chr(10) für Zeilenumbrüche in Deinen Formeln.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen ActiveWorkbook.Queries.Add und ThisWorkbook.Queries.Add?

  • ActiveWorkbook bezieht sich auf das aktuell aktive Workbook, während ThisWorkbook das Workbook bezeichnet, in dem der VBA-Code ausgeführt wird.

2. Kann ich mehrere Parameter in einer Query verwenden?

  • Ja, Du kannst mehrere Variablen definieren und diese in Deiner Query-Formel nutzen, indem Du sie entsprechend verkettest.

3. Wie kann ich meine Queries nachträglich bearbeiten?

  • Du kannst die Queries-Sammlung verwenden, um bestehende Queries zu finden und deren Formeln zu ändern oder neu zu definieren.

4. Funktioniert dieser Code in allen Excel-Versionen?

  • Der Code sollte in Excel 2016 und höheren Versionen funktionieren, die Power Query unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige