Macro para exportar rango de datos de Excel a tabla access

¿Me podéis ayudar en la creación de una macro para exportar los datos de un rango en hoja Excel a una tabla de access como datos anexados?.

1 respuesta

Respuesta
1

Aquí te dejo esta macro que exporta los registros de una hoja de MS Excel a MS Access 2007, en este caso sería tu hoja "PARA ACCESS" la que enviarías, la macro inserta al final de tu tabla seleccionada del Archivo de MS Access los registros provenientes de MS Excel, utiliza la instrucción ISERT INTO de SQL, deberás tener en cuenta lo siguiente:
La macro sólo funciona con Archivos de MS Access 2007 (ACCDB), los archivos de MS Excel podrán ser de la versión 2003 y 2007, (si deseas ajustar la macro para que funcione en archivos de MS Access 2003, deberás agregar la referencia en la biblioteca, para que trabaje con la extensión mdb)
Procura no tener celdas combinadas en Excel (en tu hoja que vas a exportar) porque el valor se lo asignará a la primer celda unicamente
La hoja de MS Excel que se va a enviar a MS Access ("PARA ACCESS"), puede variar en nombre, ya que la macro te permite elegir el nombre de la hoja que vas a enviar.
La Tabla de MS Access que va a recibir la exportación, puede variar igual en nombre, puesto que la macro te permitirá elegir el nombre de una tabla existente en la Ruta y Nombre de BD de Archivo de MS Access seleccionado

La hoja de MS Excel a enviar a MS Access deberá tener los nombres de los campos en la Primer fila de la hoja (es decir Títulos en la primer Fila), ya que en base a ellos la instrucción SQL los asigna a tu BD de Access.
El orden en el que aparecen los campos tanto en tu hoja de MS Excel como de MS Access puede variar, puesto que con los títulos se asignan los registros a tu tabla de MS Access
Los campos tanto de tu hoja de Excel (la que vas a exportar), como de tu tabla de MS Access, deberán estar escritos de idéntica forma, para que se puedan asignar correctamente en su campo en la Tabla de MS Access
Los campos de tu hoja de Excel pueden ser mayores a los campos de tu Tabla de Access, pero los campos de tu Tabla de Access no pueden ser mayores a los Campos de tu hoja de Excel, es decir, los nombres de los campos (todos) de tu tabla de Access deberán estar contenidos dentro de los nombres de los campos (títulos) de tu hoja de Excel). Por ejemplo:
Supongamos que tienes dos casos a Exportar una hoja de MS Excel a MS Access
En el primer caso en tu hoja de MS Excel a Exportar tienes tus campos (títulos de fila) Empleado, Sueldo y Dirección, y en tu base de datos de MS Access solo tienes Empleado y Dirección, en este caso si se puede realizar la exportación, ya que la macro va a buscar los campos de Empleado y Sueldos de tu BD de Access en tu hoja de Excel y los Exportará (propiamente es una importación ya que la base activa es la de Access).
En tu segundo caso en tu hoja de MS Excel tiene tus campos Empleado y Dirección, y en tu BD de Access en tu tabla tienes tus campos de Empleado, Sueldo y Dirección, en este caso la macro muy seguramente marcará error, puesto que va a buscar todos tus campos de tu tabla de Access y no va a encontrar el campo de Sueldo en la Hoja de Excel, la solución es incluir en tu hoja de Excel el Campo Sueldo, aunque lo dejes sin datos, sólo poner el Título para marcar su posición.
Cuando selecciones tu Libro de Excel deberás ser paciente en lo que lo carga a la memoria para tomar los nombres de las hojas que contiene.
*Si logras unificar que el nombre de la hoja a exportar, siempre sea el mismo por ej. "PARA ACCESS" (la macro se podría adaptar para ejecutarse sobre un conjunto de libros es decir de varios libros de excel a una tabla de Access).

Perdona, se me olvidaron ponerte los archivos en la respuesta...

Archivo 1

Archivo 2

Archivo 3

http://www.tumicrocredito.es/Base de datos3.accdb

http://www.tumicrocredito.es/Enviar Hoja Excel-Acces-nvr.xls

http://www.tumicrocredito.es/PLANILLA CONSOLIDADO_TRASPASOS.xls

Muchas gracias por tu rápida respuesta Experto, disculpa pero, no dispongo de Access 2007, no se puede comprobar en access 2003?.

Saludos.

Pruébalo en access 2003 tal y como te he explicado en la anterior respuesta.

Gracias de nuevo por tu rápida respuesta, en access 2003 me da error .

El mensaje es error de compilación, no se puede encontrar el proyecto o la biblioteca.

Saludos.

Si deseas trabajar con access 2003 deberás agregar la referencia a la biblioteca para que trabaje en mdb.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas