Si el filtro se aplica en un subformulario, solo se necesita ajustar la ruta.
Los filtros del formulario funcionan con dos parámetros, uno es la condición (la igualdad a cumplir) y el otro es si se activa o no se activa (que es mas sencillo que borrar y escribir la condición).
'Me' hace referencia al formulario en que corre el código y permite que las rutas sean relativas en lugar de absolutas.
Para referirse a un formulario (en funciones de subformulario) solo hay que indicárselo a Access añadiéndole la palabra reservada 'Form':
El filtro aplicado al formulario principal:
Me.Filter = "Año = " & Me.[nombre del combo]
El mismo filtro aplicado a un subformulario que se llamase 'Reservas':
Me.Reservas.FORM.Filter = "Año = " & Me.[nombre del combo]
(Me ==> los objetos son locales)
(Reservas ==> el nombre del objeto subformulario)
(FORM ==> el indicador de que no es un cuadro de texto o combo: es un formulario)
(Filter ==> la propiedad del formulario que contiene la condición)
Se puede referenciar a cualquier propiedad, por ejemplo el indicador de que el filtro esta activo o inactivo (FilterOn):
Me.Reservas.FORM.FilterOn = True (-1) // False (0)
Access interpreta al cero como FALSE, a cualquier otro valor diferente de cero como TRUE
En el evento en el que se evalúe el dato del combo y se genere la condición en base al año se pueden dar dos opciones o es un año (numero) o el texto 'Todos'.
Si comparamos el valor que devuelve el combo (un numero de año o el texto 'Todos') con 'TODOS' se obtiene una de dos respuestas:
.- Se cumple (True)
.- No se cumple (False)
La respuesta es perfectamente valida para activar el filtro y el código quedará así:
Me.Reservas.FORM.Filter = "Año = " & Me.[nombre del combo]
Me.Reservas.FORM.FilterOn = Me.[nombre del combo] <> "Todos"
La primera línea genera el filtro a aplicar, la segunda lo aplica.
(Si el combo devuelve 'Todos' la condición no se cumple, el resultado será FALSE: el filtro no se aplica y mostrara todos los años)
Para que la opción "todos" funcione correctamente en tu combo "año" <a href="https://thatsnot-myneighbor.io">That's Not My Neighbor</a> y muestre todos los registros independientemente del año seleccionado, puedes modificar la consulta SQL de origen de fila del combo "año" para incluir una condición que verifique si se ha seleccionado la opción "todos". - Lily Collins
¿Es más sencillo que utilizar el propio filtro del formulario Access?. Si se elige un año se activa el filtro (y solo se vera ese año), si se elige 'Todos' no se activa el filtro y se mostraran ... ¿TODOS? - Enrique Feijóo