CopyFromRecordset ist wahrscheinlich die einfachste Methode zum Abrufen von Daten aus einer Access-Tabelle in ein Excel-Arbeitsblatt.
Sub DAOCopyFromRecordSet(DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) ' Beispiel: DAOCopyFromRecordSet "C:\FolderName\DataBaseName.mdb", _ "TableName", "FieldName", Range("C1") Dim db As Database, rs As Recordset Dim intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) Set db = OpenDatabase(DBFullName) Set rs = db.OpenRecordset(TableName, dbOpenTable) ' alle Datensätze 'Set rs = db. OpenRecordset("SELECT * FROM " & TableName & _ " WHERE " & FieldName & _ " = 'MyCriteria'", dbReadOnly) 'Filter Records' Feldnamen schreiben For intColIndex = 0 To rs.Fields.Count - 1 TargetRange.Offset( 0, intColIndex).Value = rs.Fields(intColIndex).Name Next ' Recordset schreiben TargetRange.Offset(1, 0).CopyFromRecordset rs Set rs = Nichts db.Close Set db = Nichts End Sub
Wenn Sie beim Datenimport mehr Kontrolle haben möchten, können Sie das folgende Makro anpassen:
Sub DAOFromAccessToExcel(DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) ' Beispiel: DAOFromAccessToExcel "C:\FolderName\DataBaseName.mdb", _ "TableName", "FieldName", Range("B1") Dim db As Database, rs As Recordset Dim lngRowIndex As Long Set TargetRange = TargetRange.Cells(1, 1) Set db = OpenDatabase(DBFullName) Set rs = db.OpenRecordset(TableName, dbOpenTable) ' alle Datensätze 'Set rs = DB. OpenRecordset("SELECT * FROM " & _ TableName & " WHERE " & FieldName & _ " = 'MyCriteria'", dbReadOnly) ' filter records lngRowIndex = 0 With rs If Not .BOF Then .MoveFirst While Not .EOF TargetRange.Offset( lngRowIndex, 0).Formula = .Fields(FieldName) .MoveNext lngRowIndex = lngRowIndex + 1 Wend End With Set rs = Nichts db.Close Set db = Nichts End Sub
In den Makrobeispielen wird davon ausgegangen, dass Ihr VBA-Projekt einen Verweis auf die DAO-Objektbibliothek hinzugefügt hat.
Sie können dies innerhalb der VBE tun, indem Sie das Menü Extras, Verweise auswählen und Microsoft DAO x.xx-Objektbibliothek auswählen.
Verwenden Sie ADO, wenn Sie für den Datenimport oder -export zwischen ADO und DAO wählen können.