• Viernes 3 de Mayo de 2024, 11:20

Autor Tema:  Base De Datos  (Leído 2285 veces)

Omarrpat

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Base De Datos
« en: Lunes 17 de Mayo de 2004, 20:24 »
0
Que tal a todos amigos, necesito su ayuda.
Tengo el siguien te problema, necesito crear una consulta SQL a partir de  2 tablas que se encuentran en 2 bases de datos diferentes, como puedo realizar en acces, se los agradeceria mucho.

Juan C

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Base De Datos
« Respuesta #1 en: Martes 18 de Mayo de 2004, 01:58 »
0
Hola:

Escribe tu oproblema concreto y si te puedo ayudar con mucho gusto, pero creo que de entrada tienes que hacer dos conexiones

Saludos

Juan Carlos

jpardo84

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Base De Datos
« Respuesta #2 en: Miércoles 19 de Mayo de 2004, 17:40 »
0
Amigo, como dijiste que es en Acces, pues ahí es facil casi todo, lo que debes hacer es vincular la tabla que necesitas en una de las dos nases de datos, o sea si tienes BaseDatos1 y BaseDatos2, vincula la tabla de BaseDatos2 en BaseDatos1, y desde BaseDatos1 con el Generador de consultas resuelves todo, eso si tienes que relacionar las dos tabla a através de un campo común a las dos tablas. O si prefieres hacer la consulta desde un formulario independiente en un botón y hacer el SQl con sólo código, pues lo haces como si la tabla vinculada estuviera en la BaseDatos1 así:

Private Sub Comando0_Click()
Dim BASE As Database
Dim RS As Recordset
Dim SQL As String

Set BASE = Workspaces(0).OpenDatabase(CurrentDb.Name)

SQL = "SELECT  ( los campos de las dos tablas) FROM Tabla1,
Tabla2 WHERE campo_que relaciona Tabla1 = campo_que_relaciona_tabla2"

Set RS = BASE.OpenRecordset(SQL)

If RS.RecordCount > 0 Then
RS.MoveFirst
Do While Not RS.EOF
  código_que_muestra-los datos_puede ser en un cuadro de lista u una grilla
 RS.MoveNext
Loop

End If
End Sub

Espero te sirva,  saludos...!!

Omarrpat

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: Base De Datos
« Respuesta #3 en: Lunes 24 de Mayo de 2004, 22:30 »
0
Amigos muchas gracias, primeramente a jpardo84 gracias, pero dejen explico mejor mi situacion.

primeramente se que es posible vincular dos archivos de bases de datos de ms Access, pero el vinculo es estatico, es decir si db1.mdb se encuentra en c:\ y db2.mdb se encuentra en  f:\archivos, necesito la flexibilidad de tener cualquier de las dos bases de datos en lugares diferentes, si fuera posible mediante codigo realizar las vinculaciones, ya que al inicio la aplicacion que doy mantenimiento solo era para monousuario, ahora un proceso importante necesita realizarse un "query" y este ocupa necesita dos tablas no localizadas en la misma base de datos.
existen otras manera de solventar este problema, una es que cualdo realice la instalacion cliente, los vinculos los realice manualmente, pero deseo una opcion mas profesional o definitivamente modificare este proceso el cual implicaria una gran serie de cambios.
pero por su atencion muchas gracias.

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Base De Datos
« Respuesta #4 en: Lunes 24 de Mayo de 2004, 23:45 »
0
Hola!

Puedes utilizar la Clausula IN, que sirve para indicar mediante una cadena la dirección de la base de datos. Esta se usa como una extensión del nombre de la tabla.

P ej.

dim strBase as string
strBase= "c:\Bases\Tablas.mdb"

la consulta sería:

"Select clientes.* from clientes in '" & strBase & "' where...

Así, la variable strBase te da la flexibilidad que pides.

Suerte! :hola:
La luz que sólo se ilumina a sí misma, es oscuridad.