CopyFromRecordset je verjetno najlažji način pridobivanja podatkov iz Accessove tabele na Excelov delovni list.
Sub DAOCopyFromRecordSet (DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) 'Primer: DAOCopyFromRecordSet "C: \ Ime mape \ DataBaseName.mdb", _ "Ime_tabele", "Ime_polja () Dim db kot zbirka podatkov, rs kot niz zapisov Dim intColIndex kot celo število Set TargetRange = TargetRange.Cells (1, 1) Set db = OpenDatabase (DBFullName) Set rs = db.OpenRecordset (TableName, dbOpenTable) 'vsi zapisi' Set rs = db. OpenRecordset ("SELECT * FROM" & TableName & _ "WHERE" & FieldName & _ "= 'MyCriteria'", dbReadOnly) "zapisi filtrov" zapišejo imena polj za intColIndex = 0 Za rs.Fields.Count - 1 TargetRange.Offset ( 0, intColIndex) .Value = rs.Fields (intColIndex) .Name Naprej 'zapiši niz zapisov TargetRange.Offset (1, 0) .CopyFromRecordset rs Nastavi rs = Nič db.Zapri niz db = Nič Končaj Sub
Če želite več nadzora z uvozom podatkov, lahko spodnji makro prilagodite:
Pod DAOFromAccessToExcel (DBFullName As String, TableName As String, _ FieldName As String, TargetRange As Range) 'Primer: DAOFromAccessToExcel "C: \ Ime mape \ DataBaseName.mdb", _ "Ime_tabele", "Ime_polja (") Dim db kot zbirka podatkov, rs kot niz zapisov Dim lngRowIndex kot dolgo nastavljeno TargetRange = TargetRange.Cells (1, 1) Set db = OpenDatabase (DBFullName) Set rs = db.OpenRecordset (TableName, dbOpenTable) 'vsi zapisi' Set rs = DB. OpenRecordset ("SELECT * FROM" & _ TableName & "WHERE" & FieldName & _ "= 'MyCriteria'", dbReadOnly) 'zabeleži filter lngRowIndex = 0 z rs, če ni .BOF Potem .MoveFirst While Not .EOF TargetRange.Offset ( lngRowIndex, 0) .Formula = .Fields (FieldName) .MoveNext lngRowIndex = lngRowIndex + 1 Wend End With Set rs = Nič db.Zapri db = Nothing End Sub
Primeri makrov predpostavljajo, da je vaš projekt VBA dodal sklic na knjižnico objektov DAO.
To lahko storite znotraj VBE tako, da izberete meni Orodja, Reference in izberete Knjižnico objektov Microsoft DAO x.xx.
Uporabite ADO, če lahko izbirate med ADO in DAO za uvoz ali izvoz podatkov.