Ich möchte gerne eine Access-Abfrage in Excel importieren per VBA.
Wäre froh um einen Code ansatz.
Besten Dank und Gruss
TOM
Sub import()
Dim db As Database
Dim rs As Recordset
Dim rng As Range
Dim abfrage As String
Dim colpointer As Integer, rpwpointer As Integer
'Datenbankconnect
'Hier haben .xls und .mdb Datei gleiche Pfadangabe:evt. anpassen
Set db = OpenDatabase(ThisWorkbook.Path & "\SDQArchiv.mdb")
'Abfrage
abfrage = "SELECT xyz,abc FROM Tabellexyz WHERE ..."
Set rs = db.OpenRecordset(abfarge, dbOpenSnapshot)
'Zielbereich
Set rng = Sheets("Deinsheet").[B2]
rs.MoveFirst
rowPointer = 0
Do While Not rs.EOF
For colpointer = o To rs.Fields.Count - 1
rng.Offset(rowPointer, colpointer) = rs.Fields(colpointer)
Next colpointer
rs.MoveNext
rowPointer = rowPointer + 1
Loop
rs.Close
db.Close
End Sub
Öffne den VBA-Editor: Drücke ALT + F11
, um den VBA-Editor in Excel zu öffnen.
Verweise setzen: Gehe zu Extras
> Verweise
und setze einen Haken bei Microsoft DAO 3.6 Object Library
.
Neues Modul erstellen: Klicke mit der rechten Maustaste auf VBAProject (DeineArbeitsmappe)
und wähle Einfügen
> Modul
.
Code einfügen: Kopiere den folgenden VBA-Code in das Modul:
Sub import()
Dim db As Database
Dim rs As Recordset
Dim rng As Range
Dim abfrage As String
Dim colpointer As Integer, rowPointer As Integer
' Datenbankconnect
Set db = OpenDatabase(ThisWorkbook.Path & "\SDQArchiv.mdb")
' Abfrage
abfrage = "SELECT xyz, abc FROM Tabellexyz WHERE ..."
Set rs = db.OpenRecordset(abfrage, dbOpenSnapshot)
' Zielbereich
Set rng = Sheets("Deinsheet").[B2]
rs.MoveFirst
rowPointer = 0
Do While Not rs.EOF
For colpointer = 0 To rs.Fields.Count - 1
rng.Offset(rowPointer, colpointer) = rs.Fields(colpointer)
Next colpointer
rs.MoveNext
rowPointer = rowPointer + 1
Loop
rs.Close
db.Close
End Sub
SQL-Abfrage anpassen: Ändere die Zeile mit abfrage = "SELECT xyz, abc FROM ..."
entsprechend Deiner Access-Abfrage.
Code ausführen: Gehe zurück zu Excel, drücke ALT + F8
, wähle import
und klicke auf Ausführen
.
OpenDatabase
an.'abc'
in ""abc""
und setze Hochkommata in doppelte Hochkommata (""
).Sheets("Deinsheet").[B2]
, falls nötig.Eine andere Möglichkeit, Daten aus Access in Excel zu importieren, ist die Verwendung der Access-Datenimportfunktion
. Du kannst auch eine CSV-Datei exportieren und diese dann in Excel importieren. Verwende dazu Daten
> Abrufen und Transformieren
> Aus Datei
> Aus Text/CSV
.
Einfaches Beispiel:
abfrage = "SELECT Name, Alter FROM Kunden WHERE Stadt = 'Berlin'"
Komplexere Abfrage:
abfrage = "SELECT Produkte.Name, Bestellungen.Menge FROM Bestellungen INNER JOIN Produkte ON Bestellungen.ProduktID = Produkte.ID WHERE Bestellungen.Datum >= #01/01/2023#"
Diese Abfragen zeigen, wie Du spezifische Daten aus Deiner Access-Datenbank in Excel importieren kannst.
Entwurfsansicht
in Access, um die SQL-Abfrage zu erstellen und zu testen, bevor Du sie in VBA verwendest.1. Wie kann ich eine Access-Datenbank in Excel importieren?
Du kannst eine Access-Abfrage mit VBA importieren oder die Datenbank direkt über die Importfunktion in Excel einfügen.
2. Was ist die Entwurfsansicht
in Access?
Die Entwurfsansicht ist eine Funktion in Access, die es Dir ermöglicht, Abfragen grafisch zu erstellen und SQL-Code zu generieren. Du kannst diese Ansicht über Ansicht
> SQL-Ansicht
erreichen.
3. Wie kann ich eine CSV-Datei aus Access importieren?
Du kannst die Exportieren
-Funktion in Access nutzen, um die Daten als CSV-Datei zu speichern und anschließend in Excel zu importieren.
4. Gibt es spezielle Tastenkombinationen für Access?
Ja, die Tastenkombination ALT + F11
öffnet den VBA-Editor, und CTRL + G
öffnet das Direktfenster.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen