Con el siguiente procedimiento, puede importar datos de una tabla de Access a una hoja de trabajo.
Sub ADOImportFromAccessTable (DBFullName como cadena, _ TableName como cadena, TargetRange como rango) 'Ejemplo: ADOImportFromAccessTable "C: \ FolderName \ DataBaseName.mdb", _ "TableName", Range ("C1") Dim cn As ADODB.Connection, rs Como ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells (1, 1) 'abre la base de datos Set cn = New ADODB.Connection cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & _ DBFullName & ";" Set rs = New ADODB.Recordset Con rs 'abra el conjunto de registros. Abra TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable' todos los registros '.Abra "SELECT * FROM" & TableName & _ "WHERE [FieldName] =' MyCriteria '", cn``, adCmdText 'registra RS2WS rs, TargetRange' escribe datos desde el juego de registros a la hoja de trabajo '' enfoque opcional para Excel 2000 o posterior (RS2WS no es necesario) 'Para intColIndex = 0 Para rs.Fields.Count - 1' los nombres de campo 'TargetRange.Offset (0, intColIndex) .Value = rs.Fields (intColIndex) .Name' Next 'TargetRange.Offset (1, 0) .CopyFromRecordset rs' los datos del conjunto de registros End With rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Los ejemplos de macros asumen que su proyecto de VBA ha agregado una referencia a la biblioteca de objetos ADO.
Puede hacer esto desde dentro del VBE seleccionando el menú Herramientas, Referencias y seleccionando Microsoft
Biblioteca de objetos ActiveX Data Objects x.x.
Utilice ADO si puede elegir entre ADO y DAO para importar o exportar datos.