Buscar por numero y año lectivo

Hola

He aplicado el siguiente código para que realice las búsqueda por numero de alumno y el ultimo año lectivo estudiado esto lo tengo en un formulario de buscar.

cNie = Alltrim(Thisform.Text1.Value)

SELECT MAX(Lec) FROM Inscripción WHERE Nie = cNie INTO CURSOR LecActual

Pero como puedo hacer para que los datos encontrado aparezcan en el formulario inscripción.

Y como hacer para que en caso de que no lo encuentre que me muestre un mensaje de que no lo encontró.

1 Respuesta

Respuesta
1

1.) Debes seleccionar todos los campos de la tabla Inscripción, por ejemplo>

Select código,nombre,apellidos,MAX(lec) FROM Inscripción Where Nie=cNie Into Cursor LacActual

IF Reccount() > 0

Thisform.txtCodigo.Value ) LecActual.Codigo

Etc.

Else

=Messagebox("No se encontrol ningún registro",64."Error")

Endif

Me muestra un error que dice:

SQL: la clausula GROUP BY falta o no es válida.

SELECT NIE, Nombre, Apellido, Grado, Sección, Turno FROM Inscripción WHERE cNie = Nie INTO CURSOR LecActual

Los campos NIE, Grado, Sección y Turno son de la tabla Inscripción

Y los campos Nombre y Apellido son de la tabla Alumno

Como se puede construir el código SQL teniendo dos tablas

1. Coloca el siguiente comando antes del select o el init del form

Set EngineBehavior 70

2) Al final del select coloca Group By Nie

3) Para unir 2 tablas puedes usar INNER JOIN del comando Select

Con tu ayuda he creado este código pero me filtra el primero de la lista.

Formulario Buscar.

Set EngineBehavior 70

SELECT Inscripción.Nie, Alumno.Nom, Alumno.Ape, Inscripción.Gra, Inscripción.Sec, Inscripción.Tur, MAX(Inscripción.Lec) FROM Inscripción INNER JOIN Alumno;
ON inscripción.Nie = Alumno.Nie WHERE Inscripción.Nie = cNie GROUP By Inscripción.Nie INTO CURSOR LecActual

IF RECCOUNT() > 0
cNie = LecActual.Nie
cEnc = 1
Thisform.Release
Else
=Messagebox("No se encontró ningún registro",64,"Error")
Endif

Estoy usando método para mostrar los datos del formulario Inscripción, Ejemplo:

Evento GotFocus. Formulario Inscripcion

Thisform.TxtNie.Value = Inscripción.Nie

Thisform.TxtNom.Value = Alumno.Nom
Thisform.TxtApe.Value = Alumno.Ape
Thisform.CboGra.Value = Inscripción.Gra
Thisform.CboSec.Value = Inscripción.Sec
Thisform.CboTur.Value = Inscripción.Tur
Thisform.TxtLec.Value = Inscripción.Lec

Como lo soluciono.

Pruebe poniendo en la clausula group by, Group By Nie,Lec.

Probé poniente Group By Nie, Lec lo probé sin el cursor y resulta que me mostró dos registros uno del año 2013 y otro de 2014.

Se lo quité y lo probé solo con Group By Nie sin el cursor y el código está correcto me filtró el año actual, creo que el problema está en mostrar los datos en el formulario de inscripción, porque este código lo tengo en el formulario de buscar.

En el evento gotfocus del formulario de inscripción muestro los datos con método siguiente

Thisform.Mostrar

Thisform.TxtNie.Value = Inscripción.Nie
Thisform.TxtNom.Value = Alumno.Nom
Thisform.TxtApe.Value = Alumno.Ape
Thisform.CboGra.Value = Inscripción.Gra
Thisform.CboSec.Value = Inscripción.Sec
Thisform.CboTur.Value = Inscripción.Tur
Thisform.TxtLec.Value = Inscripción.Lec

Será que debo de usar el cursor en este formulario y el cursor en lugar de la tabla y el nombre del campo porque tal vez aquí sea el problema, realmente no se pero como puedo hacer.

Claro debes usar el nombre del cursor del resultado de la consulta.

Ya sustituí la tabla por el cursor, pero me muestra un error en la siguiente linea.

Thisform.TxtLec.Value = LecActual.Lec

¿Como lo soluciono?

El error que muestra es:

no se encuentra la variable LEC

En el select sustituye MAX(Inscripción. Lec), con MAX(Inscripción.Lec) As lec

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas