Sei sulla pagina 1di 2

Acces a exel

Hola a todos, el siguiente post es uno de los que me ayudo para realizar un trabajo de la
universidad, lo encuentro bastante sencillo y til, la idea es importar la data de una tabla que
tenemos en un archivo de Access, y con ayuda de una macros podremos exportar estos datos a
nuestra hoja de Excel. Manos a la obra.
Tenemos creada una BD Access llamada Empleados.mdb ubicada en nuestra unidad C:, este
archivo a su vez tiene una tabla llamada Employees (puedes usar el nombre del archivo y de la
tabla que sea, en este caso solo es para cuestiones del ejemplo).
Tambien tenemos abierto el Excel y previamente hemos dado algunas libertades en la seguridad
para la ejecucin de Macros, para esto nos dirigimos a Herramientas / Macro / Seguridad, y
elegimo el nivel de seguridad Medio, luego Aceptar.
Habilitamos la barra de herramientas de Formulario para poder sacar un boton, crear la macro
y ejecutarla cada vez que presionamos en ese botn.
Al crear el boton en nuestra hoja de Excel, se abrir una ventan llamada Asignar Macro, ahi
ecribimos el nombre de nuestra Macro, para nuestro caso le llamaron ImportarAccess y luego le
damos en Nuevo.
Se abrir una ventana de Visual Basic donde veremos escrito dos lneas de cdigo
SubImportarAccess() y End Sub.
Dentro de esas dos lneas de cdigo pegamos el siguiente script, el cual har el trabajo de la
conexin y la importacin de la data.
dimensiones
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim lngTablas As Long
Dim i As Long
elegir uno de estas dos rutas al archivo Access
strDB = ThisWorkbook.Path & \ & db.mdb
strDB = C:\Empleados.mdb si en otra carpeta
nombre de la tabla del archivo Access
strTabla = Employees
crear la conexin
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open Provider=Microsoft.Jet.OLEDB.4.0; & _
Data Source = & strDB & ;
consulta SQL
strSQL = SELECT * FROM & strTabla &
recSet.Open strSQL, datConnection
copiar datos a la hoja
ActiveSheet.Cells(2, 1).CopyFromRecordset recSet
copiar rtulos
lngCampos = recSet.Fields.Count
For i = 0 To lngCampos 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
desconectar
recSet.Close: Set recSet = Nothing
datConnection.Close: Set datConnection = Nothing
Antes de probarlo debemos hacer lo siguiente, en la misma ventana de Visual Basic nos vamos a
Herramientas / Referencias, buscamos la opcin Microsoft ActiveX Data Objects 2.8 Library le
damos check y luego Aceptar.
Cerramos la ventana de Visual Basic, la cual nos llevar nuevamente a nuestra hoja de Excel, y
listo solo nos queda probar la Macro dndole click al botn creado anteriormente.
Veremos que la data de la BD de Access se importa a nuestra hoja.

Potrebbero piacerti anche