Visual Basic: Búsquedas en bases de datos conectadas

Tengo una duda se pueden hacer búsquedas si tengo dos bases de datos conectadas
Ejemplo en una base de datos tengo la tabla mes enero que tiene el campo codigoPais y otra base de datos tengo la tabla país que tiene el nombrePais y codigoPais
Bueno quiero hacer una consulta que me de los nombres del mes enero
pd: no puedo colocar la tabla país a la base de datos(1) ya que también hay otras bases de datos que tienen otros años

1 respuesta

Respuesta
1
Este es tu ejemplo anterior
Trata de seguirle los cambios y probamos
If Option1.Value = True Then
Set m1 = ex0.Execute("select codigopais from m02")
'aca traes todos los codigos
Set rs = ex.Execute("select pais from pais= m1!codigopais")
'aca traes todos los pais de ese codigo una sola vez este recordset tiene que ir dentro el loop pero del recordset m1.
me podrias explicar porque un for dentro del loop???
y que es s_cad???
Do While Not m1.EOF
s_cad = ""
For I_num = 0 To rs.Fields.Count - 1
s_cad = s_cad & rs(I_num) & " - "
Next
List1.AddItem s_cad
rs.MoveNext
Loop
End If
End Sub
¿Esta bien gracias te puedo mandar mis form para que veas lo que tengo?
Si quieres me mandas el mail
Gracias
No me sale tengo algo así
If Option1.Value = True Then
Set m1 = ex0.Execute("select codigopais from m02")
Set rs = ex.Execute("select pais from pais= m1!codigopais")
Do While Not rs.EOF
s_cad = ""
For I_num = 0 To rs.Fields.Count - 1
s_cad = s_cad & rs(I_num) & " - "
Next
List1.AddItem s_cad
rs.MoveNext
Loop
End If
End Sub
No se si estoy bien pero quiero que lo que escribí en el textbox me lo busque
tengo que hacer algo con la base de datos o con las tablas antes m1 es el recordset de la base de datos ex0 conde esta la tabla m02 que tiene codigopais
y en recordset rs es el nuevo donde esta la base de datos ex que tiene la tabla país
Gracias por tu ayuda
Global ex As ADODB.Connection
Global ex0 As ADODB.Connection
Global m1 As ADODB.Recordset
Global rs As ADODB.Recordset
Set ex0 = New ADODB.Connection
ex0.ConnectionString = "dsn=ex2000"
Set ex = New ADODB.Connection
ex.ConnectionString = "dsn=ex"
Eso es lo que tengo en un modulo
Gracias
Me dice error de sintaxis en la clausula FROM
Te explico el for y el s_cad eso es para llenar la lista que mira yo tengo un form1 que me conecta a la base de datos por año y por tabla mes y eso me los tira a un form2 y en el botón buscar me da los datos pero tengo otra base de datos con los país
En el form2 tengo un textbox que coloco un país apretó el botón buscar y en un listbox que me de la información
Gracias por tu ayuda y paciencia
Pásame como haces las conexiones y como declaras los recordset
Te paso el código como tendría que ser para hacer lo tuyo, no nos interesa después donde pasas los datos.
La idea es primer tenerlos.
Tienes tus 2 conexiones y dos recordset
Algunos consejos para mejorar la performance
Te convendría pasar una variable al otro form y trabajarlo ahí. No llenar los datos en uno y pasarlos al otro. (Hasta podrías repetir la consulta)
Rs1
Rs2
¿Vos colocas un país en un textbox y los datos los traes de otra base?
Cuando elegís el país, ese país tiene una clave única.
¿Con esa clave podes traer los datos en el list con una sola consulta?
¿Qué te parece?
¿Cómo manejas las dos conexiones?
Puede haber una manera primero tienes que tener el campo clave de alguna manera con algún recordset y utilizas otro para buscar el dato en la base
Respóndeme por favor lo de la conexión y explicame la situación por la que tienes que hacer esa consulta
Estoy aprendiendo esto de visual bueno recién tengo conectado las bases de datos de los años con sus meses supongamos que entre a la base de datos año 2000 y la tabla mes enero
If Combo2.Text = "Enero" And Combo1.Text = "2000" Then
ex0.Open
Set m1 = ex0.Execute("select * from m01")
Form2.Show
end if
conecto la base de datos así en un modulo
Global ex0 As ADODB.Connection
Global m1 As ADODB.Recordset
Public Sub conectar()
Set ex0 = New ADODB.Connection
ex0.ConnectionString = "dsn=ex2000"
Y en la tabla m01 esta el campo codigoPais pero tengo otra base de datos que no se como conectarla y hacer la búsqueda de colocar en un textbox el nombre del país y me da la información
el nombre del país esta en la otra base de datos
Gracias
Usa dos conexiones diferentes.
3 bases 3 conexiones
De esta manera usas recordset diferentes y después los unís o los utilizas para consultas
Y como se unen los recordset me puedes dar un ejemplo por favor gracias por tu tiempo y ayuda
Por ejemplo
Un recordset me trae todos los código de país
rs1 llamémoslo
Otro me va a traer de ese código de país el nombre
rs2 llamémoslo.
select codpais from tabla1
select nombre from tabla2 where codpais = rs1!codpais
Cualquier duda me avisas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas