Importar datos de Access to Excel (DAO) usando VBA en Microsoft Excel

Anonim

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.