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

Forumthread: Abfrage (Query) in VBA starten

Abfrage (Query) in VBA starten
24.11.2006 09:17:17
Karsten
Hallo,
ich habe mal eine Frage.
Ich habe eine Exceldatei mit mehreren Registern.
Auf einem Blatt habe ich über externe Daten ein Query mit Bezug auf eine andere Exceldatei geschrieben. Die Eigenschaften habe ich auf Ausführen beim Öffnen gestellt.
Dann habe ich ein VBAcode Workbook_Open geschrieben.
Mein Problem ist nun das erst das Workbook_Open ausgeführt wird und dann erst das Query.
Da ich aber immer erst die aktuellen Daten aus dem Query für den VBACode brauche suche ich etwas womit ich das Query im Workbook_Open als erstes starten kann.
Herzlichen Dank im Voraus.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage (Query) in VBA starten
24.11.2006 10:22:04
EtoPHG
Hallo Karsten,
Schreib als erstes nach dem Workbook_open (Passe vorher den Blattnamen an!):

ThisWorkbook.Worksheets("TabelleMitDemQuery").QueryTables(1).Refresh BackgroundQuery:=False

Gruss Hansueli
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Abfrage (Query) in VBA starten


Schritt-für-Schritt-Anleitung

Um eine Abfrage (Query) in VBA zu starten, befolge diese Schritte:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. In der linken Seitenleiste findest du das Projekt, das deine Excel-Datei repräsentiert. Doppelklicke auf „DieseArbeitsmappe“.

  3. Füge den folgenden Code in das Fenster ein:

    Private Sub Workbook_Open()
       ThisWorkbook.Worksheets("TabelleMitDemQuery").QueryTables(1).Refresh BackgroundQuery:=False
    End Sub
  4. Stelle sicher, dass du den Blattnamen ("TabelleMitDemQuery") anpasst, um auf dein spezifisches Arbeitsblatt mit der Abfrage zu verweisen.

  5. Schließe den VBA-Editor und speichere die Datei.

  6. Schließe und öffne die Excel-Datei erneut, um zu testen, ob die Abfrage beim Öffnen automatisch aktualisiert wird.


Häufige Fehler und Lösungen

Fehler: Die Abfrage wird nicht aktualisiert.

Lösung: Überprüfe, ob der Blattname im VBA-Code korrekt ist. Stelle sicher, dass die QueryTables korrekt eingerichtet sind und die Verbindung zu den externen Daten funktioniert.

Fehler: Laufzeitfehler 1004.

Lösung: Dies kann passieren, wenn die Abfrage nicht existiert oder der Index der QueryTables falsch ist. Stelle sicher, dass die Query auf dem angegebenen Blatt vorhanden ist.


Alternative Methoden

Eine alternative Methode besteht darin, Power Query zu verwenden. Du kannst eine Power Query in VBA starten, indem du diese Schritte befolgst:

  1. Erstelle die gewünschte Power Query in Excel.
  2. Verwende den folgenden VBA-Code, um die Power Query zu aktualisieren:

    Sub RefreshPowerQuery()
       Dim conn As WorkbookConnection
       For Each conn In ThisWorkbook.Connections
           If conn.Type = xlConnectionTypeWORKSHEET Then
               conn.Refresh
           End If
       Next conn
    End Sub

Diese Methode ist nützlich, wenn du mehrere Queries verwalten möchtest.


Praktische Beispiele

Wenn du eine Excel-Datei mit mehreren Abfragen hast, kannst du diese auch in einer Schleife aktualisieren:

Sub RefreshAllQueries()
    Dim ws As Worksheet
    Dim qt As QueryTable

    For Each ws In ThisWorkbook.Worksheets
        For Each qt In ws.QueryTables
            qt.Refresh BackgroundQuery:=False
        Next qt
    Next ws
End Sub

Diese Methode stellt sicher, dass alle Abfragen in deiner Arbeitsmappe aktualisiert werden.


Tipps für Profis

  • Verwende BackgroundQuery:=True, wenn du die Abfragen im Hintergrund aktualisieren möchtest. Dies kann die Benutzerfreundlichkeit verbessern, da der Benutzer weiterhin mit Excel arbeiten kann.
  • Nutze Fehlerbehandlung im VBA-Code, um mögliche Probleme abzufangen. Beispielsweise kannst du mit On Error Resume Next arbeiten, um die Ausführung nicht zu stoppen.
  • Dokumentiere deinen Code mit Kommentaren, um die Verständlichkeit für andere Benutzer zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich eine bestimmte Abfrage aktualisieren?
Du kannst den Index der QueryTables ändern, um eine bestimmte Abfrage zu aktualisieren. Beispiel:

ThisWorkbook.Worksheets("MeinBlatt").QueryTables(2).Refresh

2. Was ist der Unterschied zwischen einer QueryTable und einer Power Query?
Eine QueryTable ist eine einfache Möglichkeit, Daten aus einer externen Quelle in Excel zu importieren und zu aktualisieren, während Power Query eine leistungsstärkere und flexiblere Datenbearbeitungs- und Transformationsfunktion bietet.

3. Kann ich VBA verwenden, um eine Adobe Target automatisierte Personalisierung zu starten?
Das ist nicht direkt möglich, da Adobe Target eine separate Plattform ist. Du kannst jedoch Daten aus Excel an Adobe Target über API-Integration senden, aber das erfordert zusätzliche Programmierung.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige