Como importar datos de rangos no contiguos de Excel a Access mediante macros

En una nota anterior habíamos comentado como nuestro lector había intentado importar dos rangos a una tabla en Access sin éxito ya que lo que había conseguido es agregar los datos del segundo rango al primer rango importado.

Caso expuesto:



Seleccionamos Objetos Macros



Hacemos clic en Nuevo



Utilizamos como primera acción TransferirHojaCálculo. Establecemos los siguientes parámetros:

Tipo de transferencia: Importar
Tipo de hoja de cálculo: Microsoft Excel 8-10
Nombre de tabla: establecemos el nombre de nuestra tabla. En nuestro caso tabla1
Nombre de archivo: escribimos la ruta del archivo cuyos rangos queremos importar. En nuestro caso lo hemos puesto en c:\Libro1.xls
Contiene nombres de campo: indicamos No porque no vamos a importar los datos con títulos
Rango: establecemos el rango a importar. Hemos de hacer referencia a la hoja en que se encuentra. En nuestro caso no hemos nombrado la hoja, pero si así fuese tendríamos que establecer nombre de la hoja!rango a importar



Creamos una segunda acción con TransferirHojaCálculo y seguimos los mismos pasos. El único parámetro que modificamos es el Rango.



El problema de esta macro tal y como explicábamos en una nota anterior es que al importar agrega los datos del segundo rango al primero.



Una solución más elegante sería utilizar una macro con una acción de transferencia y con otra de SQL

La primera acción que establecemos es TransferirHojaCálculo para que importe la hoja de cálculo entera. Por tanto, no establecemos nada en Rango.



La segunda acción que hemos de establecer es EjecutarSQL y escribir el código que permita eliminar las columnas que le indiquemos de nuestra tabla. En este caso queremos eliminar las columnas de la D a la I.

ALTER TABLE tabla1 DROP F4, F5, F6, F7, F8, F9;




Una vez hecho esto guardamos la macro con el nombre que queramos. En nuestro caso es Rangos. Al hacer doble clic sobre nuestra macro Rangos, aparecerá una tabla con el nombre tabla1.

Hacemos doble clic sobre dicha tabla y veremos como se han importado los rangos correctamente.


0 comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Top WordPress Themes