Cambiar el origen de los datos

15/06/2005 - 10:08 por Farners | Informe spam
Buenos dias a todos,
Tengo un montón de bases de datos MDB con información diversa, pero todas
ellas tienen 5 consultas que se llaman exactamente igual y tienen los mismos
campos.

Por otro lado tengo un montón de libros Excel, todos ellos con el mismo
formato y configuración, donde cada uno de ellos obtiene datos de unas
consultas de una MDB concreta.

Dado que los MDB tienen el mismo nombre de consulta, y las consultas los
mismos nombres de campo, y los libros obtienen datos de esas consultas, lo
único que deberia hacer para generar los excel seria poder cambiar el nombre
de la base de datos, ya que todo lo demás es exactamente igual.

A alguien se le ocurre como puedo hacerlo?
Muchísimas gracias
Farners
 

Leer las respuestas

#1 Fernando Arroyo
15/06/2005 - 10:46 | Informe spam
Cada consulta es un objeto QueryTable, entre cuyas propiedades se encuentran Connection y CommandText. Si modificas estas dos propiedades usando VBA, la consulta extraerá los datos de la base de datos que le especifiques. Por ejemplo:

Sub Prueba()
Dim qt As QueryTable
Dim strMDB As String

Set qt = Worksheets("Hoja1").QueryTables(1) 'Nombre de la hoja donde se encuentra la consulta
strMDB = "C:\bd2" 'Ruta y nombre de la base de datos (sin la extensión)

qt.Connection = "ODBC;DSN=MS Access Database;DBQ=" & strMDB & ".mdb;DefaultDir=C:\datos\excel;DriverId%;FIL=MS Access;MaxBufferSize 48;PageTimeout=5;"
qt.CommandText = "SELECT Tabla2.campo1, Tabla2.campo2, Tabla2.campo3 " & _
"FROM `" & strMDB & "`.Tabla2 Tabla2"
qt.Refresh

Set qt = Nothing
End Sub


En el código anterior, la única instrucción que habría que modificar para que se extrajeran los datos de otra base de datos es

strMDB = "C:\bd2"

siempre con la condición (obvia) de que las bases tengan la misma tabla con los mismos campos, o la misma consulta.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Farners" escribió en el mensaje news:
Buenos dias a todos,
Tengo un montón de bases de datos MDB con información diversa, pero todas
ellas tienen 5 consultas que se llaman exactamente igual y tienen los mismos
campos.

Por otro lado tengo un montón de libros Excel, todos ellos con el mismo
formato y configuración, donde cada uno de ellos obtiene datos de unas
consultas de una MDB concreta.

Dado que los MDB tienen el mismo nombre de consulta, y las consultas los
mismos nombres de campo, y los libros obtienen datos de esas consultas, lo
único que deberia hacer para generar los excel seria poder cambiar el nombre
de la base de datos, ya que todo lo demás es exactamente igual.

A alguien se le ocurre como puedo hacerlo?
Muchísimas gracias
Farners


Preguntas similares