Importar y exportar hojas de cálculo en Access mediante macros

La acción de macro ImportExportSpreadsheet en Microsoft Access permite automatizar la transferencia de datos entre su base de datos de Access (.mdb o .accdb) y archivos de hoja de cálculo. Además, ofrece la posibilidad de vincular datos de Excel a Access, permitiendo su visualización y modificación desde ambos programas.

Tipos de transferencias de datos

Al utilizar la acción ImportExportSpreadsheet, debe especificar el tipo de operación que desea realizar. Las opciones disponibles son:

  • Importar: Introduce datos de una hoja de cálculo en una tabla de Access. Si la tabla de destino ya existe, los datos se anexarán. Si no existe, Access creará una nueva tabla.
  • Exportar: Transfiere datos desde una tabla o consulta de selección de Access a un archivo de hoja de cálculo. Si el archivo de destino ya existe, será reemplazado (a menos que se exporte a Excel versión 5.0 o posterior, en cuyo caso se creará una nueva hoja dentro del libro).
  • Vincular: Crea un vínculo a una hoja de cálculo de Excel. Esto permite ver y editar los datos de la hoja de cálculo directamente desde Access, manteniendo la capacidad de acceso completo desde Excel.
Diagrama de flujo mostrando las opciones de Importar, Exportar y Vincular datos en Access

Argumentos clave de la acción ImportExportSpreadsheet

Para configurar la acción ImportExportSpreadsheet, deberá completar los siguientes argumentos en el Generador de macros:

Tipo de transferencia

Seleccione Importar, Exportar o Vincular en el cuadro Tipo de transferencia.

Tipo de hoja de cálculo

Especifique el formato del archivo de hoja de cálculo con el que va a trabajar. Access soporta varios tipos, incluyendo archivos de Excel. Tenga en cuenta que aunque puede importar y vincular (solo lectura) a archivos Lotus .WK4, no es posible exportar datos de Access a este formato. Tampoco se admiten la importación, exportación o vinculación de datos de hojas de cálculo de Excel versión 2.0 o Lotus .WKS con esta acción.

Tabla de destino (o origen de exportación)

Indique el nombre de la tabla de Access donde se importarán los datos, desde la cual se exportarán los datos, o a la que se vincularán los datos de la hoja de cálculo. Si está exportando, también puede especificar el nombre de una consulta de selección de Access.

Si selecciona Importar, Access anexará los datos a la tabla existente o creará una nueva si no existe.

Nota: Al usar la acción ImportExportSpreadsheet, no puede utilizar una instrucción SQL para especificar los datos a exportar.

Nombre del archivo

Introduzca el nombre completo del archivo de hoja de cálculo, incluyendo la ruta de acceso. Este argumento es obligatorio.

Si está exportando datos desde Access y el nombre del archivo especificado ya existe, Access lo reemplazará, a menos que esté exportando a un libro de Excel versión 5.0 o posterior. En este último caso, los datos se copiarán a la siguiente hoja de cálculo disponible en el libro.

Primera fila contiene nombres de campos

Especifique si la primera fila de la hoja de cálculo contiene los nombres de los campos (Sí/No). Si selecciona , Access utilizará estos nombres para los campos de la tabla de Access al importar o vincular. Si selecciona No, la primera fila se tratará como datos normales.

Rango

Defina el rango de celdas que desea importar o vincular. Si deja este argumento en blanco, se importará o vinculará la hoja de cálculo completa. Puede especificar un rango con formato como A1:E25. La sintaxis A1..E25 no funciona en Access 97 o versiones posteriores.

Para hojas de cálculo de Excel versión 5.0 o posterior, puede prefijar el rango con el nombre de la hoja de cálculo y un signo de exclamación, por ejemplo, Presupuesto!A1:E25.

Nota: Al exportar a una hoja de cálculo, este argumento debe dejarse en blanco.

Captura de pantalla del Generador de macros de Access mostrando la acción ImportExportSpreadsheet y sus argumentos

Consideraciones adicionales

La acción ImportExportSpreadsheet es funcionalmente similar a utilizar los comandos de la pestaña Datos externos en la cinta de opciones de Access, específicamente en el grupo Importar o exportar.

Si desea importar o vincular datos desde una hoja de cálculo de Excel que está abierta en modo Edición, Access esperará a que se cierre el modo de edición antes de completar la operación de vinculación.

Es posible automatizar la importación de datos desde Excel a Access utilizando código VBA. Esto requiere añadir referencias a la Excel Object Library si trabaja desde Access, o a la Access Object Library si trabaja desde Excel. A continuación, se muestra un ejemplo de cómo se podría estructurar una función VBA para importar datos:

Function exportar() Call ImportadelExcel("C:\agosto 08.xls", "C:\2009.mdb", "Partidas", "[Sheet2$A1:R5]")End FunctionSub ImportadelExcel(sFichero As String, DS As String, sTablaDestino As String, sRango As String) Dim sConnect As String Dim sSQL As String Dim cnnActiva As ADODB.Connection ' Establezco la conexión con la base de datos de Access Set cnnActiva = New ADODB.Connection cnnActiva.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & DS & ";" ' Preparo la cadena de conexión para la hoja de cálculo sConnect = "'" & sFichero & "' 'Excel 8.0;HDR=Yes;'" ' Construyo la sentencia SQL para importar los datos sSQL = "SELECT * INTO " & sTablaDestino & " FROM " & sRango & " IN '" & sFichero & "'" & _ " 'Excel 8.0;HDR=Yes;'" ' Ejecuto la sentencia SQL cnnActiva.Execute sSQL ' Cierro la conexión cnnActiva.CloseEnd Sub

Este código, aunque funcional, requiere la correcta configuración de los parámetros, como el nombre del archivo de origen, la base de datos de destino y el rango específico de la hoja de cálculo.

Importar datos de Access a Excel / Pasar datos de Access a Excel / Exportar datos de Access a Excel

tags: #crear #macro #importar #exportar #hoja #de