Visual basic y Access, porfa es urgente!

A los que puedan ayudarme, les pido ese favor
quería preguntar, como podría hacer para que cuando se clickee un dato en el item de un listbox1(cargado con una base de datos base1.mdb), compare ese dato con los datos de otra base de datos
(base2.mdb y si coinciden ambos que muestre todos los datos en otro listbox2.(Con los daos de base2.mdb)
Bueno esa fue mi pregunta y espero que puedan respondérmela pronto.
Desde ya gracias por su tiempo y su dedicación.

1 Respuesta

Respuesta
1
En vista de tu carácter de urgencia paso a responderte una posible solución, digo posible porque a pesar de que es aplicable en teoría nunca lo probé por lo cual puede fallar. La idea sería abrir dos conexiones a dos BD diferentes un recordset para cada conexión, y cuando se presiona sobre el list1 (cargado con rs1) se produce una consulta sql filtrada en el rs2. Para que se entienda mejor, pone un list y un datagrid en un form vacío y referencia ADO 2.5 a tu proyecto:
Option Explicit
Dim varRs1 As New Recordset
Dim varRs2 As New Recordset
Dim Conexion1 As New Connection
Dim Conexion2 As New Connection
' Sub para llenar el list con los códigos
Private Sub subFillListRs(ByVal prmList As ListBox, ByRef prmRs As Recordset, ByVal prmField As String)
Dim loopItems As Long
Dim varTotalItems As Long
varTotalItems = prmRs.RecordCount
prmList.Clear
prmRs.MoveFirst
For loopItems = 0 To varTotalItems - 1
prmList.AddItem prmRs(prmField).Value & ""
prmRs.MoveNext
Next loopItems
End Sub
Private Sub Form_Load()
' Tenés que agregar la ref ADO 2.5 o superior a tu proyecto
' Crear una conexión mediante código
Dim Driver As String
Dim Usuario As String
Dim Modo As String
Dim RutaBD As String
Dim Clave As String
RutaBD = App.Path & "\DB\Codigo.mdb"
Usuario = "User ID=Admin;"
Modo = "Mode=Share Deny None;"
' Para jet 97
'Driver = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;"
' Para jet 2k
Driver = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;"
Clave = "Jet OLEDB:Database Password=''"
Conexion1.CursorLocation = adUseClient
Conexion1.Open Driver & Usuario & "Data Source=" & RutaBD & ";" & Modo & Clave
' Abro Conexión 2
RutaBD = App.Path & "\DB\Paises.mdb"
Conexion2.CursorLocation = adUseClient
Conexion2.Open Driver & Usuario & "Data Source=" & RutaBD & ";" & Modo & Clave
With varRs1
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
End With
With varRs2
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
End With
Set varRs1 = Conexion1.Execute("SELECT Code FROM Codigos")
Set varRs2 = Conexion2.Execute("SELECT * FROM Paises")
' Para llenar una lista
Call subFillListRs(List1, varRs1, "Code")
' Para enlazar la tabla al datagrid
Set DataGrid1.DataSource = varRs2
' Total de items
Label1.Caption = "Cantidad de items: " & varRs1.RecordCount - 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
varRs1.Close
Set varRs1 = Nothing
varRs2.Close
Set varRs2 = Nothing
Conexion1.Close
Set Conexion1 = Nothing
Conexion2.Close
Set Conexion2 = Nothing
End Sub
Private Sub List1_Click()
varRs2.Filter = "Code LIKE '" & List1.List(List1.ListIndex) & "'"
End Sub
Espero te funcione bien, de ultima decime cuál es el error para solucionarlo.
Suerte
.: Gydba :.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas