Filtrar datos por año

hola resulta que tengo un campo fecha de ingreso y quiero filtrar todos los datos de alumno por el año en que ingresaron.

Yo aplico este código pero me muestra el error siguiente.

Incompatibilidad entre el tipo de operador y tipo de operando.

IF LASTKEY()#27
_nAno = (Thisform.Text1.Value)
dfecha = cTod(Padl(_nAno,4,'0'))
year(dFecha)


Select nie,nom,ape from alumno WHERE YEAR(Ing) between dfecha AND dfecha INTO CURSOR resultado
Thisform.List1.RowSource = "resultado.nie,nom,ape"
ENDIF

1 Respuesta

Respuesta
1

Verifica el control text que en el value tenga ctod("")

Ya apliqué el Ctod y me muestra el mismo error.

El error te lo muestra en el select

si me lo muestra en el select y he cambiado un poco el código.

IF LASTKEY()#27
dfecha = CTOD(Thisform.Text1.Value)
Select nie,nom,ape,ing from alumno WHERE Ing = YEAR(dfecha) INTO CURSOR resultado
Thisform.Grid1.RecordSource = "resultado.nie,nom,ape,ing"
ENDIF

aplico el year(dfecha) fuera de la sentencia SQL y no me muestra error pero no me filtra.

Pon el comando YEAR antes del campo ing

Select nie,nom,ape,ing from alumno WHERE YEAR(Ing) = YEAR(dfecha) INTO CURSOR resultado
Thisform.Grid1.RecordSource = "resultado.nie,nom,ape,ing"
ENDIF

no me muestra ningún error, pero no muestra nada en la GRID

no hace el filtro.

Si quieres mandame la tabla y el formulario a mi correo para poderte ayudar mejor:

[email protected]

Ya te lo envié a tu correo.

Listo reviso y te cuento

Creo que no quedo perfecto.

Me muestra el error siguiente.

Incompatibilidad entre el tipo de operador y tipo de operando.

En las propiedad del text1, en la propiedad value ponle 0. dale y avisas.

No filtra datos.

¿Porque no filtra?

¿Será el problema en la GRID?

Si revisa bien, en el recordsource debes poner el nombre del cursor, y debes también configurar el control source de cada una de la columnas del grid.

y en el Alias de la Grid

En las columnas de la Grid ya establecí la tabla y el campo.

1. El recordsource, del grid el nombre del cursor que generas

2. En el grid1. Column1 el nombre de de la columna 1 de la tabla

3. En el grid1. Column2 el nombre de la columna 2 de la tabla. etc.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas