Seguro que mucho de nosotros ha tenido que importar una hoja de cálculo (Excel) a una base de datos Access y al final se hace pesado, y por ello optamos a automatizarlo. Pues hoy os voy a explicar como desarrollar un aplicativo para importar automáticamente un Excel a Access automáticamente.
Lo primero que debemos hacer es crear un formulario nuevo y en este insertar un botón que ejecutar la consulta para importar el Excel. Después de ello, nos aseguramos que tenemos la referencia de Microsoft Excel, para ello vamos al menú Herramientas – Referencias y nos aseguramos que este activa la referencia Microsoft Excel 11.0 Object Library. Este 11.0 puede variar, seleccionad la versión más nueva. Si esto no lo activamos, cualquier cosa que hagamos a continuación no funcionará. Si por alguna razón la tenéis activa y no funciona, subirla de posición con las flechas de la derecha.
Os pongo el código para que lo entendáis mejor:
Dim Xl As Excel.Application 'Definimos una variable de aplicación Excel Set Xl = New Excel.Application 'Inicializamos la variable FileName = Xl.GetOpenFilename 'Obtenemos el Excel que queremos importar 'Comprobamos que se haya seleccionado correctamente el archivo If (FileName <> "") Then 'Ejecutamos la consulta para que lo importe DoCmd.TransferSpreadsheet acImport, 0, "nombre_hoja", FileName, True 'También podemos exportar un ragon de celdas modificando lo siguiente: DoCmd.TransferSpreadsheet acImport, 0, "nombre_hoja", FileName, True, "A22:DH100" 'Especificamos las celdas con: celda_origen:celda_fin end ifY con esto ya deberemos tener importado el excel, poniéndo el código anterior en un botón. Recordad que la tabla que se crea tendrá el nombre de la hoja del Excel.
Enlace | TransferSpreadsheet
13 comentarios:
Me podras hechar una mano? No entiendo como hacer un procedimiento en VB que me permita tomar valores de 2 columnas y hacer una gráfica.
Desde ya muchas gracias!!
La verdad que nunca me he planetado ningún aplicativo con esas funciones. Dejame que me lo mire, y hago una entrada en el blog.
¡Muchas gracias por la visita!
Hola Amigos,
Me parece muy interesante el codigo,
pero tengo un problema, estoy usando Mysql y quisiera automatizar el importe de los datos por medio de un boton desde excel a mi tabla en mysql.
Si puedes darme una mano te agradeceria mucho.
Reiner
Hola Reiner,
No he acabado de entender muy bien lo que me has comentado, pero sería tan sencillo como vincular las tablas mysql que quieras y una vez vinculadas cualquier cambio que no sea de diseño de la tabla, se verá reflejado en ella.
Para esto lo único que debes tener es un ODBC vinculado a la BBDD mySQL y ir al Acces, botón derecho en el panel dónde se muestran las tablas y elegir vincular tablas y seleccionar la opción de ODBC y listos!
Cualquier duda no dudes en consultar.
Gracias por visitar el blog!
Hola Javier Angosto,
Gracias por la pronta respuesta,
En realidad, te explico, estoy trabajando en Visual Basic.Net 2010, utilizando una base de datos MySql. Mi idea es que el registro de mis clientes que tengo ya hecho en excel lo pueda importar a la base de datos de Mysql, evitando asi volver a cargar manualmente los datos uno tras otro desde mi interfaz en Visual.Net. Dandole la opcion al usuario de mi sistema, que importe los registros de sus clientes que ya lo tiene en excel a mysql.
Saludos y muchas gracias.
Reiner
Guarda el excel en formato csv delimitado por comas, y una vez hecho esto, desarrolla una aplicativo en .net que lea línea a línea este archivo (Aqui tienes un ejemplo: http://blog.fangosto.com/2012/01/visual-basic-cargar-ini.html), y entonces cada línea que obtengas, como sabrás que están delimitados por ';' haces un split de ';' y listo, tendrás por cada fila todos los campos de la bbdd y podrás añadirlos sin problemas.
Buenas,
tengo un problema recurrente con la importacion automática de excel a acces, si lo hago a través de macros ImportarExcelhojadeCalculo, y tengo un campo que a veces es un numero y a veces es un alfanumerico, si las primeras lineas son un numero, cuando aparece un alfanumerico se produce un error de conversión de tipo. ¿sabes como solucionar éste error
HOLA SOY RAQUEL, TODAVIA SOY UN POCO NOVATA EN ESTO, TE COMENTO QUISIERA HACER UNA PORRA NAVIDEÑA PARA UN BLOG EN LA QUE FIGUREN: EL NUMERO APOSTADO, LA CUANTIA APOSTADA, EL TOTAL ACUMULADO Y EL NUMERO PREMIADO PERO SE ME DA FATAL EL EXCEL Y EL ACCES.
ASÍ MISMO ME GUSTARIA CREAR UNA ENCUESTA EN LA QUE EL RESULTADO FUERA SI O NO Y VER EN UN GRAFICO EL TOTAL DE PARTICIPANTES Y DE RESULTADO.
SI NO PUEDES CONTESTARME COMENTAME A QUIEN PUEDO ACUDIR, GRACIAS, UN SALUDO.
Hola Raquel, ponte en contacto conmigo en info@fangosto.com y te confirmo todo
Tengo un problema cuando voy a cargar un archivo de excel con el button, y es que no carga el archivo..... que hago?
Si puedes ser un poco más especifico, por favor
hola! YO quiero que desde varias encuestas (que estan en excel), las respuestasa se Transfieran automaticamente a una base de datos al ser contestadas
en realidad no se si se pueda... alguno de ustedes si?
hola, un favor necesito ayuda para crear un access que genere informes de cuadres de caja realizados en excel
Publicar un comentario