CopyFromRecordset es probablemente el método más sencillo para obtener datos de una tabla de Access en una hoja de cálculo de Excel.
Sub DAOCopyFromRecordSet (DBFullName como cadena, TableName como cadena, _ FieldName como cadena, TargetRange como rango) 'Ejemplo: DAOCopyFromRecordSet "C: \ FolderName \ DataBaseName.mdb", _ "TableName", "FieldName", Rango ("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) 'filtrar registros' escribir nombres de campo Para intColIndex = 0 Para rs.Fields.Count - 1 TargetRange.Offset ( 0, intColIndex) .Value = rs.Fields (intColIndex) .Name Next 'write recordset TargetRange.Offset (1, 0) .CopyFromRecordset rs Set rs = Nothing db.Close Set db = Nothing End Sub
Si desea tener más control con la importación de datos, puede personalizar la macro a continuación:
Sub DAOFromAccessToExcel (DBFullName como cadena, TableName como cadena, _ FieldName como cadena, TargetRange como rango) 'Ejemplo: DAOFromAccessToExcel "C: \ FolderName \ DataBaseName.mdb", _ "TableName", "FieldName", Rango ("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) 'filtra registros lngRowIndex = 0 Con rs Si no es .BOF Entonces .MoveFirst mientras no .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
Los ejemplos de macros asumen que su proyecto VBA ha agregado una referencia a la biblioteca de objetos DAO.
Puede hacer esto desde dentro del VBE seleccionando el menú Herramientas, Referencias y seleccionando Microsoft DAO x.xx Object Library.
Utilice ADO si puede elegir entre ADO y DAO para importar o exportar datos.