La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8723 - CONSULTA CON TABLAS DE DISTINTAS BASES DE DATOS
Autor:  alice queen
Hola Colegas:

necesito por favor me indiquen como puedo desde visual basic realizar una consulta a tablas que se encuentran en distintas base de datos.
Desde ya muchas gracias

  Respuesta:  Miquel Garcia
Hola Alice,

He diseñado un programa en visual basic en el cual puedes realizar lo que preguntas.

La Web donde está colocado es: http//es.geocities.com/ndreasoft

Esta aplicación es gratuita.

También hago mención en lawebdelprogramador en la Sección de Nuestros Programas ... Windows 2000 ... Bases de datos.

Espero que sea de tu agrado.

  Respuesta:  JULIO CESAR FONTANILLA IGIRIO
Qurida Alice Queen

tu pregunta no es muy explicita, acerca en que tipos de bases de datos deseas realizar las consultas pero te voy a dar dos (2) ejemplos; el primero es para realizar consultas en msaccess y segundo es para realizar consultas en SQL server (tambien el modelo puede servirte para oracle y otros proveedores).

1)esto es para msaccess, antes debe activar en referencia miscrosoft DAO ver xxx object library
dim oldDb as database,newWs as workspace
dim nuevaconsulta as querydef
set newWs=dbengine.workspaces(0)
set oldDb=newWS.opendatabase("c:\directorio\nombreBD.mdb")
set nuevaconsulta=oldDb.createquerydef("local","select campo,campo,.... from nombre_de_la_tabla condicion")

luego este recordset puedes asignarselo a un control data previamente creado:

set nombredeldatacontrol=nuevaconsulta
y luego puedes navergar.

2)
esto es para sql server, este ejemplo establece si existe o no un usuario dentro de la base de datos.

dim conectem As Connection
dim loguea As String
dim rscliente As Recordset
Set rscliente = New Recordset
Set conectem = New Connection

With conectem
.Provider = "SQLOLEDB" esto varia de acuerdo al proveedor
puede ser oracle,db2,etc
.ConnectionString = "User ID= UserName.Text_ & ;Password =Password ; data source=nombredelamaquina; initial catalog=nombrebasededatos"
.Open
End With
consulta = "select campo,campo,etc from tabla condicion"
Set rscliente = conectem.Execute(consulta)

'comprobar si la contraseña es correcta
If rscliente.EOF = False Then
'colocar código aquí para pasar al sub
'que llama si la contraseña es correcta
'lo más fácil es establecer una variable global
'LoginSucceeded = True
conectem.Close
SIIT.Show
Me.Hide
Else
MsgBox "La contraseña no es válida. Vuelva a intentarlo", , "Inicio de sesión"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
espero que te sirva, en el provider tienes que dirigirte a un libro de VB y averiguar el provider para BD diferentes a SQLSERVER, el del ejemplo es para este tipo de BD.