Importuokite duomenis iš „Access to Excel“ (DAO) naudodami „Microsoft Excel“ VBA

Anonim

„CopyFromRecordset“ tikriausiai yra lengviausias būdas gauti duomenis iš „Access“ lentelės į „Excel“ darbalapį.

Sub DAOCopyFromRecordSet (DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) 'Pavyzdys: DAOCopyFromRecordSet "C: \ FolderName \ DataBaseName.mdb", _ "TableName", "FieldName", Range (") 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) "filtro įrašai" įrašo laukų pavadinimus IntColIndex = 0 Į rs.Fields.Count - 1 TargetRange.Offset ( 0, intColIndex) .Value = rs.Fields (intColIndex). Pavadinimas Kitas 'įrašyti įrašų rinkinį TargetRange.Offset (1, 0).

Jei norite labiau kontroliuoti duomenų importavimą, galite tinkinti makrokomandą toliau:

Sub DAOFromAccessToExcel (DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) 'Pavyzdys: DAOFromAccessToExcel "C: \ FolderName \ DataBaseName.mdb", _ "TableName", "FieldName", Range ("B" Dim db kaip duomenų bazė, rs kaip įrašų rinkinys Dim lngRowIndex kaip ilgas rinkinys 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) "filtro įrašai lngRowIndex = 0 Su rs Jei ne .BOF Tada .MoveFirst Nors Not .EOF TargetRange.Offset ( lngRowIndex, 0). Formula = .Fields (FieldName). MoveNext lngRowIndex = lngRowIndex + 1 Wend End With Set rs = Nothing db. Uždaryti rinkinį db = Nieko pabaigos Sub

Makro pavyzdžiai daro prielaidą, kad jūsų VBA projektas pridėjo nuorodą į DAO objektų biblioteką.
Tai galite padaryti iš VBE, pasirinkę meniu Įrankiai, Nuorodos ir pasirinkę „Microsoft DAO x.xx Object Library“.
Jei norite importuoti arba eksportuoti duomenis, naudokite ADO arba DAO.