Access - Consulta de Access

 
Vista:

Consulta de Access

Publicado por JNSA (1 intervención) el 25/06/2007 11:46:16
Hola a todos.

Probablemente sea una respuesta fácil y yo haya caído en la ceguera mayor, porque de lo contrario, además de no tener ni papa de Access, seguro que no se puede hacer.

El tema es el siguiente:

Tengo dos bases de datos access (bd1 y bd2) diferentes. En cada una de ellas hay una tabla (tb1) que se relaciona con la otra (tb2) por medio de un campo que se llama cam11 perteniente a la tabla bd1.tb1 y el campo cam21 que pertenece a la tabla bd2.tb2.

Es posible hacer una consulta por la que me muestre el campo bd2.tb2.cam22

La instrucción que doy vueltas es algo así como

*** En Access tengo abierta la base de datos bd1

select cam11,cam22 from tb1, tb2 in "C:\Prueba\bd2.mdb" where cam11 = cam21

Deduzco que al incluir la claúsula IN, las tablas indicadas hacen referencia a la base de datos externa indicada por lo que no encuentra ningún registro.

Por ultimo, y para evitaros trabajo innecesario, deciros que no vale añadir una tabla vinculada.

Muchas Gracias a todos por la paciencia.

Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta de Access

Publicado por Enrique (1299 intervenciones) el 25/06/2007 17:33:16
Yo lo que haría es lo siguiente, para no complicarme excesivamente:
1-Crear una nueva consulta, abrirla en diseño y sin añadir nada en ella ir al menú Ver / Vista SQL y ahí pegar la línea que sigue, cerrarla y grabarla con cualquier nombre:

Select cam22 From tb2 IN 'C:\Prueba\bd2.mdb'
Fíjate que son comillas simples las que delimitan la Ruta.

Esto lo que hace es simplemente traerse hasta la bd1.mdb el campo cam22 de la tabla tb2 de la base bd2.mdb, mostrando todos los registros de ese campo (igual que se vincularas la tabla, solo que en vez de tener la tabla, tendrás una consulta, que es exactamente lo mismo para el tratamiento de datos).

Luego esta consulta la usas como si fuera una Tabla y la puedes agregar a otra consulta donde le estableces las condiciones (el Where) para filtrar los registros.

Tambien podrias asignar directamente la Tabla de la bd2.mdb al RecordSource de un Formulario, filtrándolo al mismo tiempo:

Private Sub Form_Load()
Dim RutaBase As String
RutaBase = "C:\Prueba\bd2.mdb"
Me.RecordSource = "Select * From tb2 IN'" & _
RutaBase & "' Where Cam22 = '" & Me.Cam21 & "'"
End Sub

(Cam22 y Cam21 deben ser campos de Texto para que esto funcione, si fueran Numéricos sería así:
Me.RecordSource = "Select * From tb2 IN'" & _
RutaBase & "' Where Cam22 =" & Me.Cam21

No debería tener problemas. Suerte
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar