Cuadros combinado.

Buenas Tardes expertos, tengo un pequeño problema con Access. Tengo dos cuadros combinados del tipo países y ciudades, los datos salen de una base de datos con los dos campos.
Lo que necesito es que si selecciono un país en el cuadro de ciudades me aparezcan las ciudades correspondientes. Los problemas empiezan es que si dejo en blanco el cuadro de países me aparezcan en el de ciudades todas las ciudades de la tabla y si selecciono una ciudad me aparezca en el cuadro de países el país al que pertenece.
He probado con sentencias del tipo.
SELECT DISTINCT [Mundo].[pais] FROM resul
WHERE ((([Mundo].[pais])= iff(isnull(Formularios!Formulario1![Cuadro combinado0]);*;Formularios!Formulario1![Cuadro combinado0] )));
Pero no me ejecuta. La solución puede ser de este tipo o de cualquiera, me da igual
Un Saludo.

1 respuesta

Respuesta
1
Te lo explico utilizando código.
Tienes que vincular los dos cuadros combinados con los dos campos (país, ciudad), te recomiendo que agrupes en el caso de país. Luego tienes que insertar código, pulsas con el botón derecho encima de un combo y seleccionas la opción generar evento, luego la opción generador de codigo; borras todo lo que ponga y pegas el siguiente código:
''''''''''''''''''''''''''''''
Private Sub Cuadro_combinado0_Click()
Dim tabla As String
Cuadro_combinado2.Value = ""
If Cuadro_combinado0.Value <> "" Then
tabla = "SELECT ciudad FROM Mundo WHERE pais='"
tabla = tabla + Cuadro_combinado0.Value + "'"
Cuadro_combinado2.RowSource = tabla
End If
End Sub
Private Sub Cuadro_combinado2_Click()
Dim tabla2 As String
Cuadro_combinado0.Value = ""
If Cuadro_combinado2.Value <> "" Then
tabla2 = "SELECT pais FROM Mundo WHERE ciudad ='"
tabla2 = tabla2 + Cuadro_combinado2.Value + "'"
Cuadro_combinado0.RowSource = tabla2
End If
End Sub
''''''''''''''''''''''''''''
En el cuadro combinado 0 esta el país y en el 2 esta la ciudad.
Luego podrías hacer mejoras, como poner un botón o cuando se pulse en cualquier lado que los combos cojan el valor del principio.
Ya me dirás que tal te ha ido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas