Los cuadros combinados en cascada en un formulario son cuadros combinados sincronizados. La elección de un elemento de un cuadro combinado limita los elementos disponibles en los cuadros combinados subsiguientes. Pueden ser muy útiles para guiar, agilizar y reducir la probabilidad de errores en la búsqueda o la introducción de datos en un formulario. Por ejemplo, si en nuestro ejemplo seleccionamos Castilla-La Mancha en CC.AA., en provincia no podremos elegir Granada o en municipio Salamanca.
Para construir cuadros combinados dependientes necesitamos:
1. Orígenes de filas con consultas cuyos criterios se basen en los cuadros combinados precedentes.
2. Eventos que recalculen los valores de los cuadros combinados dependientes.
Tenemos tres tablas relacionadas Tbl_CCAA, Tbl_Provincias y Tbl_Municipios. Creamos tres cuadros combinados con origen en sus respectivos campos.
1. Cuadro combinado CC.AA.
Accedemos a las propiedades del cuadro combinado haciendo clic sobre icono Hoja de propiedades o seleccionando el cuadro y presionando Alt+Entrar o F4. En la pestaña Datos, en la propiedad Origen de la fila seleccionamos las comunidades autónomas de la tabla homónima:
En la pestaña Eventos, seleccionamos Después de actualizar, clic en el cuadro con tres puntos suspensivos y, a continuación, clic en Generador de código.
En el editor de visual escribimos el siguiente código:
Private Sub CCAA_AfterUpdate()
Provincia.Value = Null
Provincia.Requery
Municipio.Value = Null
Municipio.Requery
End Sub
Cada vez que cambia la selección del cuadro combinado CCAA, asigna un valor nulo a los cuadros Provincia y Municipio, y recalcula ambos. Sin recalcular, el cambio en el cuadro combinado precedente no tendría efecto en las consultas de origen de fila basadas en los mismos. Pues los cuadros combinados se actualizan al abrir el formulario.
2. Cuadro combinado Provincia.
En la Hoja de propiedades, en las pestaña Datos, Origen de la fila, hacemos clic sobre los tres puntos para diseñar una consulta que relacione las tablas Tbl_CCAA y Tbl_Provincias. Introducimos un criterio basado en la selección del cuadro de combinado precedente: CCAA.
En la pestaña E
ventos, seleccionamos
Después de actualizar, clic en el cuadro con tres puntos suspensivos y, a continuación, clic en
Generador de código:
Private Sub Provincia_AfterUpdate()
Municipio.Value = Null
Municipio.Requery
End Sub
Cada vez que cambia la selección del cuadro combinado Provincia, asigna un valor nulo a Municipio, y lo recalcula.
2. Cuadro combinado Municipio.
Repetimos el paso anterior, esta vez con el cuadro municipio. En la
Hoja de propiedades, en las pestaña
Datos,
Origen de la fila, hacemos clic sobre los tres puntos para diseñar una consulta que relacione ambas tablas, Tbl_Provincias y Tbl_Municipios. En
criterios acotamos la consulta en función de la elección del cuadro provincias.
Esta vez no es necesario crear el evento Después de actualizar.
Tras estos pasos, ya tendríamos los tres cuadros combinados sincronizados en cascada.
Entradas relacionadas