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

Turinys

„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.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave