Integración Excel a Access
Es difícil pensar en capturar manualmente todos los registros de una tabla. Es por eso que Access nos permite importar datos de Excel de una manera sencilla. A continuación describiré este proceso de importación de datos.
Dos opciones para importar datos
Lo primero que debemos decidir antes de iniciar con la importación de datos a Access es decidir si haremos la importación hacia una nueva tabla o hacia una tabla ya existente de Access. En caso de que la importación se realice a una nueva tabla, Access intentará asignar el tipo de datos adecuado para cada campo pero será necesario realizar una revisión posterior para asegurarnos de que Access haya asignado los tipos de datos adecuados en cada campo.
La otra opción es crear una tabla anticipadamente de manera que la importación se haga directamente a ella. De esta manera podremos definir los campos apropiados y el tipo de dato adecuado para recibir la información proveniente de Excel.
De manera personal prefiero utilizar el primer método y dejar que Access cree una nueva tabla y posteriormente realizar las adecuaciones pertinentes, pero puedes elegir cualquiera de estos dos métodos. En este artículo seguiremos la opción de crear una nueva tabla.
Importar una hoja de Excel
El proceso de importación de datos en Access se realiza a través de un Asistente el cual nos llevará de la mano para importar los datos. Debes ir a la ficha Datos externos y pulsar el comando Excel.
Este botón mostrará la primera pantalla del Asistente la cual nos permitirá especificar el archivo de Excel que contiene la información. Solamente debemos pulsar el botón Examinar para localizar el libro de Excel adecuado.
Adicionalmente debemos especificar el lugar donde se almacenarán los datos. La primera opción creará una nueva tabla que contendrá los datos importados. Si por el contrario deseas importar los datos a una tabla ya existente debes elegir la segunda opción la cual mostrará una lista de las tablas existentes de manera que puedas elegir.
Elegiré la opción de crear una nieva tabla y pulsaré el botón Aceptar para avanzar al segundo paso del Asistente.
Elegir la hoja de Excel a importar
El Asistente de importación detectará las hojas existentes dentro del libro de Excel.
Solamente debemos asegurarnos de elegir la hoja adecuada antes de avanzar. Adicional-mente podrás observar una muestra de los datos contenidos en la hoja seleccionada. Cuando estés listo pulsa el botón Siguiente.
Encabezados de columna
El tercer paso es muy simple ya que solamente nos pregunta si los datos de la hoja de Excel tienen un encabezado de columna.
En caso de que así sea solamente marca la caja de selección que indica que la Primera fila contiene encabezados de columna. Pulsa el botón Siguiente para continuar con el Asistente de importación.
Detalle de cada campo
El siguiente paso nos dará la posibilidad de indicar el tipo de dato que contienen las columnas de nuestro archivo Excel.
Si haces clic sobre cada columna podrás especificar el tipo de dato adecuado dentro de la lista de opciones.
La opción Indexado nos permite indexar una columna. Una columna indexada permite que la base de datos responda de una manera más rápida. Los índices son un tema avanzado que trataremos más adelante pero este paso del Asistente nos permite indicar si un campo será indexado o no al momento de importarlo.
La otra opción que tenemos en esta ventana es No importar el campo y en caso de seleccionarlo se omitirá dicha columna de la importación. Una vez que hayas revisado los campos de la hoja debes pulsar el botón Siguiente.
Definir una clave principal
El siguiente paso del Asistente nos permite establecer una clave principal para la nueva tabla que será creada en la importación de datos. La primera opción sugiere Permitir a Access agregar la clave principal lo cual se traduce en una nueva columna que contendrá un identificador único para cada registro de la tabla.
Si por el contrario, nuestra hoja de Excel ya contiene una clave principal definida, podemos seleccionar la opción Elegir clave principal para entonces seleccionar la columna que contiene dicha clave.
La última opción nos deja avanzar sin especificar una clave principal en la nueva tabla. Haz clic en Siguiente para ir al paso final.
Finalizar la importación de datos a Access
El último paso del Asistente nos permite asignar un nombre a la nueva tabla que se creará en Access.
Para terminar con el proceso debes especificar el nombre de la tabla y hacer clic en el botón Finalizar. Finalmente Access preguntará si deseas guardar los pasos de la importación que acabamos de realizar, lo cual es recomendable si repetirás continuamente la exportación.
Al cerrar el Asistente podrás ver la nueva tabla creada en Access con los datos importados desde Excel.
Integración Access a Excel
Muchas veces tenemos la necesidad de copiar datos de una tabla o consulta Access a una hoja Excel. Este paso es sencillo, simplemente copiar y pegar. Copiamos los datos en Access y los pegamos en Excel, pero si el tamaño/cantidad de datos es grande esta operación puede dejar literalmente “tostado” nuestro ordenador durante varios minutos. Los minutos en los que se queda “tostado” variaran dependiendo de la cantidad de datos y la memoria RAM que tenga nuestro ordenador.
Afortunadamente existe una mejor solución para copiar datos de una
tabla o consulta Access a Excel, es un poco más compleja, pero no mucho más.
Vamos a crear una Macro y usar la función de VBA “Cells.CopyFromRecordset” para
copiar tablas y consultas de Access en segundos.
Pasos:
1) Abrir Excel
2) Abrir el editor de Macros (Pulsar ALT+F11)
3) Copiar y pegar la siguiente Macro:
==========================================
Public Sub Copiar_Tabla_Access()
Dim oConexion As
ADODB.Connection
Dim rsTabla As
ADODB.Recordset
Dim sNombreTabla As String
Dim sNombreAccess As
String
Dim i As Integer
sNombreAccess =
InputBox(“¿Ruta y nombre del fichero Access?”)
If sNombreAccess <>
“” Then
sNombreTabla =
InputBox(“¿nombre de la tabla/consulta?”)
Set oConexion = New
ADODB.Connection
oConexion.CursorLocation
= adUseClient
oConexion.Open
“PROVIDER=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=” & sNombreAccess & “;”
Set rsTabla = New
ADODB.Recordset
rsTabla.Open “Select * From
[" & sNombreTabla & "]“, _
oConexion, _
adOpenStatic
ActiveSheet.Cells.CopyFromRecordset rsTabla
ActiveSheet.Rows(“1:1″).Insert Shift:=xlDown
For i = 0 To
rsTabla.Fields.Count – 1
ActiveSheet.Cells(1, i
+ 1).Value = rsTabla.Fields(i).Name
Next
rsTabla.Close
oConexion.Close
Set rsTabla = Nothing
Set oConexion = Nothing
End If
End Sub
‘==========================================
4) Guardamos los cambios.
5) Ahora ya podemos ejecutar la Macro para copiar los datos de una
tabla o consulta Access en Excel. Abrimos la ventana de Macros en el Menú
Herramientas > Macro > Macros
(o pulsar ALT+F8).
6) Seleccionamos la Macro que hemos creado “Copiar_Tabla_Access” y
pulsamos el botón “ejecutar“.
7) La Macro nos pedirá:
a) La ruta y el nombre
del fichero Access, por ejemplo “c:\temp\miAccess.mdb”.
b) El nombre de la tabla
o consulta, por ejemplo “miTabla”.
8) Ya hemos terminado.
No hay comentarios:
Publicar un comentario