Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Access-Abfrage per VBA aktualisieren

Access-Abfrage per VBA aktualisieren
29.06.2005 09:42:22
Heinz
Hallo Excelfreunde,
ich habe eine Access-Abfrage erstellt, die ich in Excel verwende.
Um nun nicht extra Access manuell öffnen zu müssen, dort die Abfrage zu aktualisieren und dann die weiteren Berechnungen in Excel durchzuführen, wäre es angenehm, die Aktualisierung per VBA durchzuführen.
Wie würde da der Code lauten?
Danke
Heinz
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access-Abfrage per VBA aktualisieren
01.07.2005 07:47:54
Heinz
Hallo Bernd,
ich habe festgestellt, dass durch den Zugriff auf die Abfrage der Access-Datenbank automatisch die aktuellen daten verwendet werdenm, somit hat sich mein Problem erledigt.
Der ADO-Kurs ist aber für die Zukunft auf jeden Fall interessant.
Herzlichen Dank für deine Bemühungen
Heinz
Anzeige
AW: Access-Abfrage per VBA aktualisieren
29.06.2005 22:40:29
Berber
Hallo Herr Wankmüller,
mein Vorschlag ist sicher nicht der Königsweg, aber da ich Excel schon vielfach als Berichtsoberfläche für Datenbankenausertungen nutzen musste, habe ich die Datenbank über VBA unter Verwendung von SQL abgefragt. Dies ist nicht so sehr kompliziert und erfolgt z.B. bei Access ohne die Datenbank öffnen zu müssen.
Allerdings bekommen Sie dass Ergebnis nicht ohne Programmierung, und die Frage ist ob sich der Aufwand lohnt.
Excel ist in dieser Hinsicht ein sehr gutes Instrument zum Reporting, zumal weitere Verarbeitung und Auswertung der Daten in Excel recht einfach möglich ist.
Gruss
Berber
Anzeige
AW: Access-Abfrage per VBA aktualisieren
01.07.2005 07:45:19
Heinz
Herzlichen Dank für Ihre Antwort.
Ich mache das auch schon eine geraume Zeit wie Sie. Die Frage war, ob durch den Zugriff auf die Abfrage der Access-Datenbank diese dadurch auch immer aktualisiert wird. Wenn ich auf eine Access-Tabelle zugreife, stellt sich das Problem nicht.
Ich habe nun festgestellt, dass durch den Zugriff automatisch die aktuellen Daten verwendet werden.
Gruß
H. Wankmüller
Anzeige
AW: Access-Abfrage per VBA aktualisieren
01.07.2005 23:03:53
Berber
Hallo Herr Wankmüller,
sorry hatte die Frage anders interpretiert.
Access und auch andere Datenbanken speichern immer nur die Kriterien der Abfrage und nicht den/das Inhalt/Ergebnis der Abfrage.
Kann man bei Access recht gut sehen, wenn man im Menü des Abfragewerkzeugs Anschicht Sql schaltet dann wird der SQL Ausdruck der Abfrage gezeigt. Nur dieser wird auch als Abfrage gespeichert.
Gruss
Berber
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Access-Abfrage per VBA aktualisieren


Schritt-für-Schritt-Anleitung

Um eine Access-Abfrage per VBA in Excel zu aktualisieren, folgen diese Schritte:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu starten.

  2. Neues Modul erstellen: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub UpdateAccessQuery()
       Dim conn As Object
       Dim rs As Object
       Dim strSQL As String
    
       ' Verbindung zur Access-Datenbank herstellen
       Set conn = CreateObject("ADODB.Connection")
       conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Pfad\zu\deiner\Datenbank.accdb;"
    
       ' SQL-Abfrage definieren
       strSQL = "SELECT * FROM DeineAbfrage"
    
       ' Abfrage ausführen
       Set rs = conn.Execute(strSQL)
    
       ' Daten in Excel übertragen
       Sheets("Tabelle1").Range("A1").CopyFromRecordset rs
    
       ' Objekte schließen
       rs.Close
       conn.Close
       Set rs = Nothing
       Set conn = Nothing
    End Sub
  4. Pfad und Abfrage anpassen: Ersetze C:\Pfad\zu\deiner\Datenbank.accdb und DeineAbfrage durch den tatsächlichen Pfad deiner Access-Datenbank und den Namen der Abfrage.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: „Datenbank kann nicht geöffnet werden“
    Lösung: Überprüfe den angegebenen Pfad zur Access-Datenbank und stelle sicher, dass die Datei existiert.

  • Fehler: „Objekt nicht gefunden“
    Lösung: Stelle sicher, dass der Name der Abfrage korrekt ist und dass diese in der Access-Datenbank existiert.

  • Fehler: „Keine Verbindung zur Datenbank“
    Lösung: Prüfe, ob der OLEDB-Anbieter für Access installiert ist und ob du die richtige Version (32-Bit oder 64-Bit) verwendest.


Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die folgenden Methoden in Betracht ziehen:

  • Power Query: Mit Power Query kannst du Daten aus Access importieren und aktualisieren, ohne VBA verwenden zu müssen. Dies ist besonders nützlich, wenn du regelmäßig Daten importierst.

  • Makros aufzeichnen: Du kannst auch die Makroaufzeichnungsfunktion von Excel nutzen, um die Schritte zur Aktualisierung der Abfrage aufzuzeichnen und dann den VBA-Code anzupassen.


Praktische Beispiele

  1. Aktualisieren aller Abfragen auf einmal: Wenn du mehrere Abfragen hast, die aktualisiert werden müssen, kannst du sie in einer Schleife durchlaufen. Hier ist ein Beispiel:

    Sub UpdateAllAccessQueries()
       Dim conn As Object
       Dim queryNames As Variant
       Dim i As Integer
    
       ' Verbindung zur Access-Datenbank herstellen
       Set conn = CreateObject("ADODB.Connection")
       conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Pfad\zu\deiner\Datenbank.accdb;"
    
       ' Liste der Abfragen
       queryNames = Array("Abfrage1", "Abfrage2", "Abfrage3")
    
       For i = LBound(queryNames) To UBound(queryNames)
           ' SQL-Abfrage definieren
           strSQL = "SELECT * FROM " & queryNames(i)
           ' Abfrage ausführen und Daten in Excel übertragen
           ' (Hier sollte der Code zum Kopieren der Daten eingefügt werden)
       Next i
    
       ' Objekte schließen
       conn.Close
       Set conn = Nothing
    End Sub
  2. Daten aus einer Access-Tabelle aktualisieren: Wenn du anstelle einer Abfrage direkt auf eine Tabelle zugreifen möchtest, kannst du den SQL-Befehl einfach anpassen:

    strSQL = "SELECT * FROM DeineTabelle"

Tipps für Profis

  • Verwende Parameter: Wenn du Daten mit spezifischen Kriterien abrufen möchtest, kannst du Parameter in der SQL-Abfrage verwenden. Dies macht die Abfrage dynamischer und flexibler.

  • Fehlerbehandlung einbauen: Verwende On Error Resume Next in deinem VBA-Code, um Fehler abzufangen und zu behandeln, ohne dass das Makro abbricht.

  • Verbesserung der Performance: Arbeite mit Indizes in Access, um die Leistung der Abfragen zu optimieren, insbesondere bei großen Datenmengen.


FAQ: Häufige Fragen

1. Wie kann ich die Access-Abfrage automatisch aktualisieren?
Du kannst ein VBA-Makro erstellen, das die Abfrage aktualisiert, wann immer du es benötigst. Zudem kannst du das Makro so planen, dass es zu bestimmten Zeiten ausgeführt wird.

2. Funktioniert dieses Verfahren mit älteren Excel-Versionen?
Ja, der VBA-Code sollte in Excel-Versionen ab 2007 funktionieren. Stelle jedoch sicher, dass die entsprechenden Access-ODBC-Treiber installiert sind.

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