Formulario principal con 2 cuadros de lista autactualizables

Tengo un formulario principal que contiene 2 cuadros de lista la primera lst_estados y la segunda lst_ciudades, al hacer click o doble click en un estado de las lista me gustaría que mostrara las ciudades que pertenecen a dicho estado.

2 respuestas

Respuesta
1

Vamos a suponer que tienes una tabla Estados con, por ejemplo, IdEstado y Estado y otra tabla Ciudades con IdEstado( numérico, no clave) y Ciudad, relacionadas ambas por Idestado. UN estado VARIAS ciudades. Vamos a suponer también que los cuadros de lista se llaman Lista1 y Lista2, y que en el cuadro de lista Lista1 tienes como Origen de la fila los campos IdEstado y Estado, siendo la columna dependiente IdEstado. En sus propiedades-Eventos-Después de actualizar puedes crear un procedimiento de evento y poner

Lista2.rowsource="select ciudad from ciudades where idestado=" & me.lista1 & ""

O sea, que el origen de la fila del segundo cuadro de lista sea aquellos registros de la tabla Ciudades en que su idestado sea igual al que acabas de señalar.

De todas formas, sería conveniente saber como están construidos los cuadros de lista, es decir, que columnas contienen.

Respuesta
1

Otra forma es modificar la consulta del segundo cuadro de lista, le preparé este ejemplo. Consta 2 tablas y un formulario. Tomé para el ejemplo los Departamentos de Colombia y las ciudades de cada departamento.

Tabla departamentos

TABLA CIUDADES

FORMULARIO

Construyo el formulario con 2 cuadros combinados y 2 cuadros de lista, uno para los departamento y otro para las ciudades.

Observe si selecciono Tolima obtengo en el segundo cuadro combinado las ciudades de este departamento. Para esto modifico la consulta del cuadro combinado (para un cuadro de lista haga lo mismo)

Observe que en criterios hago referencia al cuadro combinado "cboDpto".

Ahora, en el evento Después de actualizar del cuadro combinado cboDpto hago un requery.

Private Sub cboDpto_AfterUpdate()
  Me.cboCiudades.Requery
End Sub

Para un cuadro de lista el evento es Al hacer clic. Algo como.

Private Sub lstDptos_Click()
  Me.lstCiudades.Requery
End Sub

Si tiene alguna duda puede solicitar el ejemplo a [email protected] favor en al asunto anotar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas