Ayuda con append fromen foxpro 9

Bueno resulta que estoy haciendo un sistema de calificado para maestro osea de un colegio... Y el problema es que para una clase quiero cargar todos los alumnos de la tabla de una sección diríamos que quiero que para matemática me cargue todos los alumnos de tercer curso... Y el rollo es que quiero que esto se haga muchas veces ya que siempre matriculan nuevos alumnos... Osea que tengo que estar agregando nuevos alumnos en la tabla de matemática... Lo que quiero es usar append from de la tabla matriculados para que matemática se llene con los nuevos alumnos pero no quiero que me cargue los alumnos ya existentes en la tabla de matemática..
Para ser explicito no quiero que append from me agregue de nuevo los registros ya existentes en matemática... Osea que verifique si un registro ya existe y si es así que lo omita..

1 respuesta

Respuesta
1
Bueno lo que tienes que hacer es primero verificar antes de insertar, yo no inserto con append blank por que es mui tedioso uso sql pero bueno te explicare como lo aria
select nombre from matematicas where alumo == thisform.alumno.value into cursor temp
if _tally < 1
       insert into matematicas (campo1, campo2)values (val1, val2)
Endif
Así seria todo saludos espero que te sirva !,
Sino comenta nuevamente !
De antemano gracias por la respuesta pero resulta que no entiendo como aplicar ese código en mi formulario...
Para ser más explicito tengo la tabla alumnos y tengo la tabla filosofía. Yo quiero insertar solo los alumnos nuevos en filosofía que provienen de alumnos algún sql o comando para que verifique que alumnos ya existen en la tabla filosofía y así no los agregue de nuevo de la tabla alumnos porque con el append from me los agrega todos... sin distinción y verificación alguna...
¿Mmm ok te explicare
tu tienes una tabla y ya ai registros y también tienes un cursor es así? ¿Y ese cursor quieres meterlo en tu tabla si es que no existen los registros es así?
Si así como dice usted es...
Tengo una tabla con datos que se llama filosofía, en ella están los campos: alumno, rne, curso y tengo otra que se llama alumnos que también tiene eso mismos campos...
Las dos tablas guardan alumnos con esos campos. Solo que filosofía tiene otros campos extra que son para calificar...
El problema radica en esto: en filosofía agrego todos los registro de alumnos osea todos sus alumnos... esto lo ago con el comando append from la primera ves que uso la tabla de filosofía...
A la hora de actualizar a la segunda ves la tabla filosofía con el comando append from se vuelven a agregar todos los registro y yo no quiero eso... yo solo quiero que me agregue los registros que no existen...
select filosofia
scan
        select alumno from alumnos where alumno = filosofia.alumno into cursor temp
        if _tally < 0
       insert into alumnos(alumno,me,cursor) values(filosofia.alumno,filosofia.me,filosofia.cursor)
        Endif
Endscan
no me agrega registro ese comando si quieres fijate en la forma que los estoy usando
select filosofia
scan
 select nombre,rne from matriculas where rne = filosofia.rne into cursor temp
        if _tally < 0
       insert into filosofia(nombre,rne) values(matriculas.nombre,matriculas.rne)
        Endif
Endscan
El RNE es el que nunca se repite en la tabla filosofía por eso hago con el, Scan
Luego quiero que me inserte los rne que están en la tabla matriculas pero que no se encuentran en la tabla de filosofía.
Bueno entonces no entiendo bien tu pregunta, considero que no es lo que penc que querías, si quieres mandame bien tu pregunta y te ago el código para que ya solo lo implementes,
Tengo 2 tablas: Matriculas y filosofía
Quiero verificar si se han agregado nuevos registros a matriculas
Después de verificar quiero agregar esos nuevos registros en la tabla filosofía
X eso necesito el Scan para que verifique que registros existen en filosofía y así que no hayan repeticiones.
Ahorita lo hago con append from pero el problema es que me agrega todos los registros nuevamente y yo solo quiero los que no existe
Bueno entonces esto es así !
select matriculas
scan
      select * from filosofia where filosofia.campo1 = matricula.campo1 and filosofia.campo2 = matricula.campo2 into cursor temporal
if _tally > 0
     messagebox("Dato ya ingresado")
else
insert into filosofia values(campo1, campo2, campo3, etc)
Endif
Saludos espero que ahorra si te sirva !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas