CopyFromRecordset, bir Access tablosundan bir Excel çalışma sayfasına veri almanın muhtemelen en kolay yöntemidir.
Sub DAOCopyFromRecordSet(DBFullName As String, TableName As String, _ FieldName As Range, TargetRange As Range) ' Örnek: DAOCopyFromRecordSet "C:\FolderName\DataBaseName.mdb", _ "TableName", "FieldName"), Range("C1 Dim db As Database, rs Recordset As Dim intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) Set db = OpenDatabase(DBFullName) Set rs = db.OpenRecordset(TableName, dbOpenTable) ' tüm kayıtlar 'Set.rs = db OpenRecordset("SELECT * FROM " & TableName & _ " WHERE " & FieldName & _ " = 'MyCriteria'", dbReadOnly) ' filtre kayıtları ' alan adlarını yaz intColIndex = 0 için rs.Fields.Count - 1 TargetRange.Offset( 0, intColIndex).Value = rs.Fields(intColIndex).Name Sonraki ' kayıt kümesini yaz TargetRange.Offset(1, 0).CopyFromRecordset rs Set rs = Nothing db.Close Set db = Nothing End Sub
Veri içe aktarma ile daha fazla kontrol istiyorsanız, aşağıdaki makroyu özelleştirebilirsiniz:
Sub DAOFromAccessToExcel(DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) ' Örnek: 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) ' tüm kayıtlar 'Set rs = DB. OpenRecordset("SELECT * FROM " & _ TableName & "WHERE" & FieldName & _ " = 'MyCriteria'", dbReadOnly) ' filtre kayıtları lngRowIndex = 0 rs ile rs Değilse .BOF Then .MoveFirst While Not 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
Makro örnekleri, VBA projenizin DAO nesne kitaplığına bir başvuru eklediğini varsayar.
Bunu, Araçlar, Başvurular menüsünü seçip Microsoft DAO x.xx Nesne Kitaplığı'nı seçerek VBE içinden yapabilirsiniz.
Veri içe veya dışa aktarma için ADO ve DAO arasında seçim yapabiliyorsanız ADO'yu kullanın.