Estoy desarrollando una aplicación en la cual necesito filtrar por medios de 3 combos, datos de por ejemplo en el 1ero continente, en el 2do los países de el continente seleccionado primeramente, y finalmente tener en el 3er combo las ciudades del país seleccionado. Tengo las tablas de continentes, países y ciudades en access 2000 y ya esta bien relacionadas, es más access si logro armar un formulario de esas características, pero como lo puedo hacer en Visual 6.0.
Te paso el código que tengo para hacer lo mismo pero con los Departamentos, Provincias y Distritos de mi país (Perú), ya tu lo modificas. Primero, recuerda que tienes que hacer una referencia a la librería Microsoft DAO 3.6 en tu proyecto. A continuación el código para el form1 que tiene los 3 combos: Combo1 (Departamento), Combo2 (Provincia) y Combo3 (Distrito), utilizara una BD llamada "dbPeru.mdb" ------ Dim wspPrincipal As Workspace Dim dbPeru As Database Dim rstDepartamento As Recordset Dim rstProvincia As Recordset Dim rstDistrito As Recordset Private Sub Combo1_Click() CargarComboProvincia End Sub Private Sub Combo2_Click() CargarComboDistrito End Sub Private Sub Form_Load() AbrirBD End Sub Private Sub Form_Unload(Cancel As Integer) Set rstDepartamento = Nothing Set rstProvincia = Nothing Set rstDistrito = Nothing dbPeru.Close End Sub Private Sub AbrirBD() Set wspPrincipal = DBEngine.Workspaces(0) Set dbPeru = wspPrincipal.OpenDatabase("C:\Mis documentos\PeruDB.mdb", True, False, "") Set rstDepartamento = dbPeru.OpenRecordset("tbDepartamento", dbOpenTable) Set rstProvincia = dbPeru.OpenRecordset("tbProvincia", dbOpenTable) Set rstDistrito = dbPeru.OpenRecordset("tbDistrito", dbOpenTable) CargarComboDepartamento End Sub Private Sub CargarComboDepartamento() Combo1.Clear With rstDepartamento If .RecordCount > 0 Then .MoveFirst Do While Not .EOF ' Se agrega al combo Combo1.AddItem .Fields("NombreDepartamento") Combo1.ItemData(Combo1.NewIndex) = .Fields("IDDepartamento") .MoveNext Loop End If End With End Sub Private Sub CargarComboProvincia() Combo2.Clear With rstProvincia If .RecordCount > 0 Then .MoveFirst Do While Not .EOF If .Fields("IDDepartamento") = Combo1.ItemData(Combo1.ListIndex) Then ' Se agrega al combo Combo2.AddItem .Fields("NombreProvincia") Combo2.ItemData(Combo2.NewIndex) = .Fields("IDProvincia") End If .MoveNext Loop End If End With End Sub Private Sub CargarComboDistrito() Combo3.Clear With rstDistrito If .RecordCount > 0 Then .MoveFirst Do While Not .EOF If .Fields("IDProvincia") = Combo2.ItemData(Combo2.ListIndex) Then ' Se agrega al combo Combo3.AddItem .Fields("NombreDistrito") Combo3.ItemData(Combo3.NewIndex) = .Fields("IDDistrito") End If .MoveNext Loop End If End With End Sub ------ Espero que lo pruebes y cualquier duda que tengas me preguntas.
Mi amigo y como es eso de la bd que esta dirigido a disco local c mis documentos - Jaime Ricardo Callupe Condor