Conectar con más de una tabla de access

Amigos necesito de su ayuda, gravé una macro para importar datos de access de un archivo llamado "CONSOLIDADO", pero solo me importa una tabla, necesito hacer una rutina para que una vez importada una tabla siga con la siguiente ej: que haga la importación en la hoja 1 rango a:1, de la tabla BDMARZO, terminada la importación siga con la siguiente que en este caso es BDABRIL, y así con todas las que están en el archivo "CONSOLIDADO". Epero me puedan ayudar.

1 Respuesta

Respuesta
2

Hernán: Esta pregunta me sale sugerida y si no lo entiendo mal pretendes importar N Tablas que tienes en una BD Access desde un Excel.

Si eso es así lamento decirte que en VBA de Excel apenas tengo experiencia, con lo cual el código exacto, difícilmente puedo facilitártelo.

No obstante y por lo que veo, la metodología adecuada sería:

Hacer un procedimiento que sea el que llame N Veces al que tienes. En éste Procedimiento declara una Matriz que contenga cada "Nombre" de Tabla que quieras Importar >> Ejemplo 4 Tablas

Sub ImportaVariasTablas()

Dim MatrizTablas(3) As Variant

Dim J As Integer

MatrizTablas(0) = "BDEnero"

MatrizTablas(1) = "BDFebrero"

MatrizTablas(2) = "BDMarzo"

MatrizTablas(3) = "BDAbril"

For J = 0 To UBound (MatrizTablas)

Call Macro1000(J)

Next J

End Sub

Y entonces a tu macro >> Macro1000 la sustituyes por

Sub Macro1000(LaTabla As String)

-------

---------

y aquí las líneas que ya tienes sustituyendo

.CommandText = Array("BDMARZO") por

.CommandText = LaTabla

------

End Sub

La metodología es esa, pero ésta parte del Código en Excel, no estoy seguro si te va a funcionar, pero ya lo tienes como punto de partida. Mis saludos >> Jacinto

¡Gracias! mil gracias, voy a probar y te comento como me fue

Hernán: Aunque la metodología que te recomendé sea la adecuada, me quedó la duda si al materializarla en código habría dificultades, porque tal como referí no lo había probado.

Insistiendo en que en Excel soy un novato, he preferido confeccionar un ejemplo sencillo, que te importa varias Tablas de una BD de Access. Verás que declaro una cadena de 5, pero pueden ser las que quieras.

El enlace de descarga es >>

http://www.mediafire.com/file/sgwdg8sngk54wcf/ExcelImportaDeAccess.rar/file 

En el código hay un directorio >>

'conectamos con la base de datos de access y abrimos consulta
RutaBD = "C:\Desarrollos\Ejemplos\AccessOtrasOffice\ExcelImportaDeAccess\BDVariasTablas.accdb"
Que has de cambiar de acuerdo a donde ubiques los dos Ficheros.

En mi caso, yo hubiera hecho esas Exportaciones desde Access, pero ese es otro tema.

Un saludo >> Jacinto

Jacinto muchas gracias por tu ayuda, tu ejemplo me da otras ideas y funciona excelente, pero para este caso necesito consolidar todo en una hoja, las tablas access tienen todas las mismas estructuras, lo que quiero es resumirlas todas en una hoja excel... una a continuación de la otra... he estado probando consolidarlas todas en una sola tabla access y después importarlas desde excel, pero soy novato en esto y solo tengo las ideas. te dejo el archivo con las tablas para que las veas  https://www.mediafire.com/file/mararapwkiy30dk/CONSOLIDADO1.rar/file

jacinto este enlace mejor:

https://drive.google.com/open?id=1vqu9Jxb8i7xyIcR6Xs1wrGTLI2HbKXgz 

Hernán: Te adjunto otro ejemplo que recoje lo que comentabas de meter todo en una misma hoja de Excel.

Para ello: Haces una Consulta de Unión en la Base de Datos >> La SQL, verás que es muy simple según verás. >> QryUnionMeses y después la Importas desde el Excel.

http://www.mediafire.com/file/z1kkpkj5jc91lj8/ImportUnaQry.rar/file 

Lo que si veo es que hay muchos datos Nulos que supongo tendrás que sanear, antes o después de Importar. Ya me contarás >> Jacinto

¡Gracias! Jacinto, funciono muy bien... de nuevo gracias por tu tiempo y disposición... espero podamos seguir comunicándonos... un saludo desde chile.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas