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

Forumthread: Daten aus Access in Excel (Verweis?)

Daten aus Access in Excel (Verweis?)
29.04.2015 15:29:05
Sonja
Hallo liebe Leute vom Herber Excel Forum,
Ich versuche gerade Daten aus einer Access Datenbank in eine Excel Datei zu bekommen.
Einen Code hierzu habe ich schon hier gefunden:
Option Explicit
' benötigt im VBA einen Verweis auf M$ DAO x.y Object Library !!!
Const dbfile As String = "C:\Users\Ehrmann\Documents\Ehrmann\FleischWustneu\Test\Mydb.accdb" Private Sub cmdRead_Click() Dim dbs As Database ' Datenbank Dim qdf As QueryDef ' Datenbankabfrage Dim rec As Recordset ' Ergebnis der Datenbankabfrage Dim mysql As String ' ein SQL-Befehl Dim mynum As Long ' die aktuelle Artikelnummer Dim i As Long ' Zeilennummer Set dbs = OpenDatabase(dbfile) With dbs For i = 2 To Cells(2, 1).End(xlDown).Row mynum = CLng(Val(Cells(i, 1).Value)) mysql = "SELECT Preis FROM Artikel WHERE Artikelnummer = " & mynum & ";" Set qdf = .CreateQueryDef("", mysql) ' Ergebnis der Abfrage holen Set rec = qdf.OpenRecordset(dbOpenSnapshot) If Not rec.EOF Then Cells(i, 2).Value = rec.Fields(0).Value End If Next End With dbs.Close End Sub
Jetzt kommt aber die ganze Zeit der Fehler: Laufzeitfehler 3343
Nicht erkennbares Datenbankformat.
Der Code und die Verweise die ich genommen habe, war noch mit mdb ich habe hier eine accdb. Wahrscheinlich liegts daran? Aber was für einen Verweis brauch ich jetzt? und ja Google habe ich schon bemüht, da aber leider nichts gefunden (oder falsch gesucht)
Eingebunden habe ich:
MS Access 14 Object Libary
MS DAO 3.6 Object Libary
Hoffe ihr könnt mir helfen.
Grüße
Sonja

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Access in Excel (Verweis?)
29.04.2015 15:33:22
Sonja
tut mir leid, der Code nochmal in schön:

' benötigt im VBA einen Verweis auf M$ DAO x.y Object Library !!!
Const dbfile As String = "C:\Users\Ehrmann\Documents\Ehrmann\FleischWustneu\Test\Mydb.accdb"
Private Sub cmdRead_Click()
Dim dbs As Database ' Datenbank
Dim qdf As QueryDef ' Datenbankabfrage
Dim rec As Recordset ' Ergebnis der Datenbankabfrage
Dim mysql As String ' ein SQL-Befehl
Dim mynum As Long ' die aktuelle Artikelnummer
Dim i As Long ' Zeilennummer
Set dbs = OpenDatabase(dbfile)
With dbs
For i = 2 To Cells(2, 1).End(xlDown).Row
mynum = CLng(Val(Cells(i, 1).Value))
mysql = "SELECT Preis FROM Artikel WHERE Artikelnummer = " & mynum & ";"
Set qdf = .CreateQueryDef("", mysql)
' Ergebnis der Abfrage holen
Set rec = qdf.OpenRecordset(dbOpenSnapshot)
If Not rec.EOF Then
Cells(i, 2).Value = rec.Fields(0).Value
End If
Next
End With
dbs.Close
End Sub

Anzeige
AW: Daten aus Access in Excel (Verweis?)
29.04.2015 16:30:12
Luschi
Hallo Sonja,
Um auf eine Access-Datenbank zuzugreiffen benötigt VBA einen Verweis auf die aktuell installierte DAO-Schnittstelle.
Diese lautet für MS-Access 2002/2003: "Microsoft DAO 3.6 Object Library"
für Version 2007: "Microsoft Office 12.0 Access Database engine object Library"
für Version 2010: "Microsoft Office 14.0 Access Database engine object Library"
für Version 2013: "Microsoft Office 15.0 Access Database engine object Library"
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Daten aus Access in Excel (Verweis?)
30.04.2015 07:03:24
Sonja
Hallo,
vielen Dank damit hab ichs gefunden.
Mit lieben Grüßen
Sonja
;
Anzeige
Anzeige

Infobox / Tutorial

Daten aus Access in Excel importieren


Schritt-für-Schritt-Anleitung

Um Daten aus einer Access-Datenbank in Excel zu importieren, folge diesen Schritten:

  1. Öffne Excel und öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge einen neuen Modul hinzu:

    • Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineArbeitsmappe)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code in das Modul ein:

    Option Explicit
    ' benötigt im VBA einen Verweis auf M$ DAO x.y Object Library !!!
    Const dbfile As String = "C:\Users\Ehrmann\Documents\Ehrmann\FleischWustneu\Test\Mydb.accdb"
    
    Private Sub cmdRead_Click()
       Dim dbs As Database ' Datenbank
       Dim qdf As QueryDef ' Datenbankabfrage
       Dim rec As Recordset ' Ergebnis der Datenbankabfrage
       Dim mysql As String ' ein SQL-Befehl
       Dim mynum As Long ' die aktuelle Artikelnummer
       Dim i As Long ' Zeilennummer
    
       Set dbs = OpenDatabase(dbfile)
       With dbs
           For i = 2 To Cells(2, 1).End(xlDown).Row
               mynum = CLng(Val(Cells(i, 1).Value))
               mysql = "SELECT Preis FROM Artikel WHERE Artikelnummer = " & mynum & ";"
               Set qdf = .CreateQueryDef("", mysql)
               ' Ergebnis der Abfrage holen
               Set rec = qdf.OpenRecordset(dbOpenSnapshot)
               If Not rec.EOF Then
                   Cells(i, 2).Value = rec.Fields(0).Value
               End If
           Next
       End With
       dbs.Close
    End Sub
  4. Stelle sicher, dass die richtige DAO-Bibliothek referenziert ist:

    • Gehe zu "Extras" > "Verweise" im VBA-Editor und stelle sicher, dass die Microsoft DAO 3.6 Object Library (oder die entsprechende Version für deine Access-Version) ausgewählt ist.
  5. Führe den Code aus:

    • Du kannst den Code über einen Button oder direkt im VBA-Editor ausführen.

Häufige Fehler und Lösungen

  • Laufzeitfehler 3343: Nicht erkennbares Datenbankformat:

    • Dieser Fehler tritt auf, wenn du versuchst, eine .accdb-Datei mit einer nicht passenden DAO-Bibliothek zu öffnen. Achte darauf, die richtige Microsoft DAO 3.6 Object Library oder eine neuere Version auszuwählen.
  • Zugriffsprobleme:

    • Stelle sicher, dass die Pfadangabe zu deiner Datenbank korrekt ist und dass die Datei nicht von einem anderen Programm verwendet wird.

Alternative Methoden

Eine alternative Methode, um Daten aus Access in Excel zu importieren, ist die Verwendung von Access SVERWEIS oder die Import-Funktion in Excel:

  1. Daten importieren über den Daten-Tab:

    • Gehe zu Daten > Daten abrufen > Aus Datenbank und wähle Aus Microsoft Access-Datenbank.
  2. Verwende eine QDF-Datei:

    • Du kannst eine QDF-Datei erstellen, die die benötigten Abfragen enthält, und diese in Excel verwenden.

Praktische Beispiele

Ein Beispiel für einen SQL-Befehl zur Abfrage von Preisen aus einer Access-Datenbank könnte so aussehen:

SELECT Preis FROM Artikel WHERE Artikelnummer = 12345;

Hierbei wird der Preis für den Artikel mit der Artikelnummer 12345 aus der Tabelle Artikel abgerufen.


Tipps für Profis

  • Überlege, ob du VBA QueryDef-Objekte nutzen möchtest, um dynamische Abfragen zu erstellen und den Code zu optimieren.
  • Halte deine Access-Datenbank regelmäßig gewartet, um die Performance der Abfragen zu verbessern.
  • Wenn du eine QDF-Datei generierst, kannst du diese später einfach in PDF umwandeln, um sie zu dokumentieren oder zu teilen.

FAQ: Häufige Fragen

1. Wie kann ich eine QDF-Datei öffnen? Um eine QDF-Datei zu öffnen, benötigst du Microsoft Access. Du kannst die Datei direkt in Access öffnen und die Abfragen dort ausführen.

2. Wo kann ich die Microsoft DAO 3.6 Object Library herunterladen? Die Microsoft DAO 3.6 Object Library ist normalerweise Teil der Microsoft Office-Installation. Du kannst die Bibliothek auch direkt über die Microsoft-Website herunterladen, wenn du die 32-Bit-Version von Office verwendest.

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