¿Como hacer funcionar opción "todos" en cuadro combinado?

Tengo un combo "estudiantes" que realiza filtro por nombre apellido y también un combo "año" -basado en campo fecha_inscripción_anual- que filtran en un subformulario la trayectoria educativa del estudiante según el año. Mediante la consulta sql de origen de fila del combo "año" realicé una UNION SELECT que me permitió agregar la categoría "todos" a la opción de la lista desplegable así:

SELECT DISTINCT TRAYECTORIA_ESCOLAR.fecha_inscripcion_anual FROM TRAYECTORIA_ESCOLAR UNION SELECT "Todos" FROM TRAYECTORIA_ESCOLAR GROUP BY TRAYECTORIA_ESCOLAR.fecha_inscripcion_anual;
En el formulario en cuestión el combo año me despliega ahora la opción "todos" en la lista junto a los años 2020, 2021, 2022, 2023, 2024 (valores del campo fecha_inscripcion_anual) pero no encuentro el modo que ejecute la consulta mostrando a todos esos valores en relación al estudiante seleccionado- Sólo funciona el filtro por cada año.

Respuesta

Con eso solo se logra la selección pero 'todos' no es un dato de fecha y lógicamente dará error (o directamente no funciona).

Donde hay que hacer la modificación es el destino del dato y esa parte no se conoce (de momento).

La modificación puede ser tan sencilla como cambiar 'Todos' por un asterisco (*), conocida la consulta se podrá adaptar para que si recibe 'Todos' lo pueda cumplir (aunque lo mas sencillo pueda ser eliminar la condición directamente)

Con (*) ya había probado también. Me faltaría el código que de el contenido similar al "seleccionar todo" del filtro tradicional. El combo es de búsqueda para mostrar información ya cargada. No comprendo lo del destino del dato. Disculpas gracias por respuesta. El dato se genera en tabla trayectorias que tiene un campo fecha_inscripcion con valor predeterminado =Año(fecha()). El combo pretende filtrar registros por año o mostrar todos los registros (años) en subformulario.

Para poder aplicar el asterisco como opción alternativa (la ambigüedad) es necesario conocer como se esta utilizando el dato que proporciona el combo.

La forma mas sencilla de aplicarlo implica modificar el combo, esto es:

Añadir una columna mas para utilizar una como elemento 'visual' (se muestra el año y la opción 'Todos' y en la segunda columna (que permanece oculta) el dato que devuelve el combo al seleccionar uno de sus elementos, para los años el mismo dato y para la opción 'Todos' un asterisco.

De no ser así aparece lo del 'destino del dato' que se refiere a 'donde se utiliza' el dato que se obtiene del combo (una consulta un filtro ...).

En una consulta se puede utilizar la funcion IIF(equivale al convencional IF ... Then ... Else) de forma que si la opción que devuelve es 'Todos' devuelva un asterisco (y si no lo es el dato original), algo como:

IIF([el-combo] <> "Todos", [el-combo], "*")

Si se utilizase para aplicar un filtro en el formulario seria mas sencillo, el formulario permite aplicar o no aplicar el filtro (activarlo/desactivarlo), el método:

Me.FilterOn = [el-combo] <> "Todos"

Con un año seleccionado  ==> ([el-combo] <> "Todos") = TRUE ===>>> Me.FilterOn = TRUE

Si se selecciona 'Todos'  ==> ([el-combo] <> "Todos") = FALSE  ===>>> Me.FilterOn = FALSE

Por ello es importante conocer donde se utiliza para poder aconsejar el método optimo para aplicar el adecuado (que será aquel que menos distorsione lo que actualmente funciona).

2 respuestas más de otros expertos

Respuesta
1

Emiliano no se deje confundir, escríbame a [email protected] y si puede adjunte la base de datos en RAR. De todas maneras, le tengo el respectivo código

Respuesta

Para que la opción "todos" funcione correctamente en tu combo "año" y muestre todos los registros independientemente del año seleccionado, puedes modificar la consulta That's Not My Neighbor SQL de origen de fila del combo "año" para incluir una condición que verifique si se ha seleccionado la opción "todos".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas