CopyFromRecordset este probabil cea mai ușoară metodă de a obține date dintr-un tabel Access într-o foaie de lucru Excel.
Sub DAOCopyFromRecordSet (DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) 'Exemplu: 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) 'all records' Set rs = db. OpenRecordset ("SELECT * FROM" & TableName & _ "WHERE" & FieldName & _ "= 'MyCriteria'", dbReadOnly) 'filter records' scrie numele câmpurilor pentru intColIndex = 0 În rs.Fields.Count - 1 TargetRange.Offset ( 0, intColIndex) .Value = rs.Fields (intColIndex) .Name Next 'scrie înregistrare TargetRange.Offset (1, 0) .CopyFromRecordset rs Set rs = Nothing db.Close Set db = Nothing End Sub
Dacă doriți mai mult control cu importul de date, puteți personaliza macro-ul de mai jos:
Sub DAOFromAccessToExcel (DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) 'Exemplu: 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) 'filtre înregistrează lngRowIndex = 0 Cu rs Dacă nu .BOF Atunci .MoveFirst While Not .EOF TargetRange.Offset ( lngRowIndex, 0) .Formula = .Fields (FieldName) .MoveNext lngRowIndex = lngRowIndex + 1 Wend End With Set rs = Nothing db.Close Set db = Nothing End Sub
Exemplele macro presupun că proiectul dvs. VBA a adăugat o referință la biblioteca de obiecte DAO.
Puteți face acest lucru din VBE selectând meniul Instrumente, referințe și selectând Biblioteca de obiecte Microsoft DAO x.xx.
Utilizați ADO dacă puteți alege între ADO și DAO pentru importul sau exportul de date.