Access - Actualizar los datos de un cuadro de lista

 
Vista:

Actualizar los datos de un cuadro de lista

Publicado por CyRuS (127 intervenciones) el 18/07/2007 17:13:35
en un formulario tengo 3 cuadros de Lista. El tercer cuadro de lista filtra
datos según un dato del segundo cuiadro de lista. Y su vez este filtra los
datos según un dato en el primer cuadro de lista. El problema lo tengo que
cuando selecciono un dato en la primera lista no me hace el filtro en la
segunda lista. Y lo mismo de la segunda lista a la tercera.. He puesto el
evento de que cuando entre o se salga de la 1ª y 2ª lista me refresque el
formulario, esto es: Me.Form.refresh . y entonces sí que se me actualizan
los datos, en la 3ª lista. PERO el valor de la 1ª y 2ª lista se me cambia y
me marca por defecto el primer valor de cada lista. Y eso no me vale porque
necesito esos datos tal y como los había seleccionado

Alguna idea de cómo solucionar esto ?
Tengoalgo parecido con ComboBox en otro form y funciona bien. Pero en este
caso necesito que sean cuadros de lista. Por lo menos el tercero.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Filtros dependientes en cuadros de lista sin cambiar valores seleccionados

Publicado por Alejandro (4142 intervenciones) el 15/08/2023 22:31:43
Entiendo que estás enfrentando un problema con los filtros dependientes en cuadros de lista en un formulario de Access y que al aplicar un filtro en un cuadro de lista, los valores seleccionados en los cuadros de lista anteriores se están reiniciando. A continuación, te proporciono una solución para mantener los valores seleccionados en los cuadros de lista sin afectar el comportamiento del filtro.

En lugar de usar el evento "Entrar" o "Salir" para refrescar el formulario (lo cual puede causar que los valores se reinicien), puedes utilizar el evento "Cambio" en cada cuadro de lista para aplicar los filtros en cascada sin afectar las selecciones actuales. Aquí tienes los pasos para hacerlo:

1. Primer cuadro de lista (evento cambio):
En el evento "Cambio" del primer cuadro de lista, actualiza la fila de origen del segundo cuadro de lista para que refleje los valores filtrados según la selección del primer cuadro. No es necesario refrescar el formulario completo en este caso.

2. Segundo cuadro de lista (evento cambio):
En el evento "Cambio" del segundo cuadro de lista, actualiza la fila de origen del tercer cuadro de lista para que refleje los valores filtrados según la selección del segundo cuadro. De nuevo, evita refrescar el formulario completo.

3. Tercer cuadro de lista (evento cambio):
En el evento "Cambio" del tercer cuadro de lista, realiza la acción deseada en base a la selección del tercer cuadro. Puedes usar los valores seleccionados en los tres cuadros de lista para ejecutar la lógica que necesitas.

4. Evitar refrescar el formulario completo:
En lugar de usar `Me.Form.Refresh`, que refresca todo el formulario y reinicia las selecciones, asegúrate de que estás actualizando solo los cuadros de lista específicos y aplicando los filtros necesarios.

Este enfoque debería permitirte mantener las selecciones en los cuadros de lista mientras aplicas filtros en cascada según las selecciones anteriores. Asegúrate de probar exhaustivamente para asegurarte de que los filtros y las selecciones funcionan como se espera.

Recuerda ajustar el código y los nombres de los objetos a tu diseño específico y reemplazar "TuCuadroDeLista" con los nombres reales de los cuadros de lista en tu formulario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar