Como puedo filtrar un subformulario con botones de opción en formulario access

Tengo un formulario con un subformulario

Lo que necesito es que al momento de marcar las opciones ejemplo sin iniciar me salgan solo las que están sin iniciar y así mismo con las otras opciones de los botones en el subformulario

2 respuestas

Respuesta
2

Cada opción del grupo de opciones tiene asignado un valor numérico. Por tanto, si la opción " sin iniciar" tiene el valor 1 y la otra opción el 2, puedes poner en el evento "después de actualizar" del marco de opciones un código como este:

If me.marco =1 Then

Me.filter = "Estado ='sin iniciar'"

Else

Me.filter = "Estado ='en curso'"

End if

Me.filteron = True

Si tu marco tiene más opciones,  usa un Select Case para contemplarlas todas.

Pero ojo, el código propuesto es para un marco de opciones, no botones de opción individuales como parece que tienes

Entonces según entiendo lo puedo hacer pero si lo hago con un Select Case ya que con opción de botones no me serviría el código ... por que si tengo varias opciones para filtrar

Pues no lo has entendido del todo. El usar el select case sería en el caso de que uses un marco de opciones con más de dos opciones (por ejemplo que tengas "en curso", "activo", "finalizado","rechazado"...). En esos casos es más eficiente usar un Select que varios Ifs con ElseIfs

Si tienes botones independientes también se se podría hacer lo que pretendes, pero es un poco más lioso.

MI recomendación es que (si no lo tienes ya) elimines los botones que tienes, y pongas un marco de opciones (usa el asistente para crearlo) con los valores de filtro que quieras poner y apliques el código que te propongo.

Por otro lado, lo que te comenta eperezfer (gracias por mencionarlo) es correcto, mi solución era para filtrar el propio formulario, no el subformulario, por lo que tendrás que cambiar los Me. Filter y Me. FilterOn por Me. NombreSubform.Form. Filter y Me. NombreSubform.Form. FilterOn como él te indica.

Respuesta
1

La respuesta que te dan es la más acertada, no obstante, al tratarse de un Subformulario el filtro se debe hacer sobre éste, algo como:

Me!Subformulario.Form.Filter="Estado='"Sin iniciar'"

...

..

Me"Subformulario.Form.FilterOn=True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas