CopyFromRecordset is waarschijnlijk de gemakkelijkste methode om gegevens van een Access-tabel naar een Excel-werkblad te krijgen.
Sub DAOCopyFromRecordSet(DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) ' Voorbeeld: 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 records 'Set rs = db. OpenRecordset("SELECT * FROM " & TableName & _ " WHERE " & FieldName & _ " = 'MyCriteria'", dbReadOnly) 'filter records' schrijf veldnamen For intColIndex = 0 To rs.Fields.Count - 1 TargetRange.Offset( 0, intColIndex).Value = rs.Fields(intColIndex).Name Next ' schrijf recordset TargetRange.Offset(1, 0).CopyFromRecordset rs Set rs = Nothing db.Close Set db = Nothing End Sub
Als u meer controle wilt over het importeren van gegevens, kunt u de onderstaande macro aanpassen:
Sub DAOFromAccessToExcel(DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) ' Voorbeeld: 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) ' all records 'Set rs = DB. OpenRecordset("SELECT * FROM " & _ TableName & " WHERE " & FieldName & _ " = 'MyCriteria'", dbReadOnly) ' filterrecords lngRowIndex = 0 With rs If Not .BOF Then .MoveFirst While Not .EOF TargetRange.Offset( lngRowIndex, 0).Formule = .Fields(FieldName) .MoveNext lngRowIndex = lngRowIndex + 1 Wend End With Set rs = Nothing db.Close Set db = Nothing End Sub
De macrovoorbeelden gaan ervan uit dat uw VBA-project een verwijzing naar de DAO-objectbibliotheek heeft toegevoegd.
U kunt dit vanuit de VBE doen door het menu Tools, References te selecteren en Microsoft DAO x.xx Object Library te selecteren.
Gebruik ADO als u kunt kiezen tussen ADO en DAO voor het importeren of exporteren van gegevens.