ACCESS Campos dependientes en formularios

Tengo en una base de datos access un formulario dependiente de una tabla. En el mismo hay dos campos, uno consistente en una lista desplegable llamada "LISTA", dependiente de un campo de la tabla en la que se pueden seleccionar entre varias opciones ("Opcion 1; Opción 2; Opcion 3; Opcion 4"), el otro es una casilla verificación llamada "VERIFICACION" relacionada con un campo del tipo Si/No. 

Necesitaría que si el campo de verificación se encuentra marcado, sólo pudiese elegir en la lista desplegable las opciones 2, 3 y 4, y no permitiese que se pudiera seleccionar la "Opcion 1".

1 respuesta

Respuesta
3

En el evento "al entrar" o "al recibir el enfoque" del cuadro de lista LISTA, le generas este código :

If Me.Verificacion = True Then

Me.Lista.Rowsource="Opción 2; Opcion 3; Opcion 4"

Me.Lista.Requery

End If

Te funcionará siempre y cuando hayas escrito tu los valores disponibles en la lista, y no los cosa de una tabla/ consulta, en cuyo caso el código sería otro.

Lo he puesto tal cual y no funciona ni en el evento "al recibir enforque" ni en el evento "al entrar". No se que puede fallar.

Por si influye el formulario está compuesto por más campos y el orden a la hora de rellenarlo puede implicar que se rellene la lista desplegable antes que la casilla de verificación, con lo cual tendría que salir un mensaje de aviso en el caso de que se haya seleccionado la "Opción 1" y posteriormente se marque la casilla de verificación.

Por los datos que das, diría que el código es correcto. Y como no das detalles de por qué falla, tampoco te puedo decir por qué...

Lo que sí te recomendaría es que cambiases el orden de relleno del formulario por algo "con sentido", pues si quieres hacer que el cuadro de lista dependa del valor de la casilla, lo lógico será rellenar primero la casilla, sino es doble trabajo para el que mete los datos.

Imagínate que tienes un desplegable con las comunidades autónomas y otro con las provincias: lo lógico será elegir primero la CA y luego que se desplieguen solo las provincias de esa CA. Si primero seleccionas una provincia (por ej, Madrid), luego una CA (por ej. Andalucía) y lanzas un aviso de que esa CA no es correcta, solo conseguirás "cabrear" al usuario... XD

El error es que independientemente de donde ponga el código la lista desplegable sigue mostrando todas las opciones.

Voy a seguir intentándolo, ¿de todas formas el código lo inserto en el evento de la lista desplegable o de la casilla de verificación?

Creo que sé dónde está el problema: modifica las opciones siguientes de tu cuadro de lista para que queden así:

.- Permitir ediciones de la lista: No

.- Heredar lista de valores: No

El evento lo puedes poner tanto en "después de actualizar" de la casilla de verificación, como en cualquiera de los que te dije para el cuadro de lista.

Ya me dirás si te funciona ahora.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas