Necesito ayuda para pasar datos entre formularios con Visual FoxPro

Mira el problema es que quiero pasar los datos que llene en un formulario a otro formulario pero en otra tabla distinta el código que use es el siguiente:SELECT ALUMNOS
set order to tag id_alumno
SEEK VAL(THISFORM.TXtbuscar.Value)
IF FOUND()
THISFORM.Refresh
THISFORM.TXtbuscar.Visible= .F.
*calif.id_alumno=alumnos.id_alumno
calif.nombre=alumnos.nombre
calif.paterno=alumnos.paterno
calif.materno=alumnos.materno
calif.semestre=alumnos.semestre
thisform.cmdmodificar.SetFocus
ELSE
MESSAGEBOX('ALUMNO NO ENCONTRADO','INTENTALO CON OTRA,')
THISFORM.CMdbuscar.SetFocus
ENDIF
me marca un error:
property nombre is not found
y asi con cada campo que pongo arriba
En el código
De antemano gracias por todo

1 Respuesta

Respuesta
1
No mencionaste si tienes abiertas las dos tablas; pero supongo que sí. Por lo que entiendo quieres hacer un duplicado de la información capturada en una pantalla y la tabla Alumnos, en otra y en la tabla Calif. O tal vez capturas los datos en la tabla Alumnos y en otra pantalla buscas una identificación y, quieres que te presente a quién le corresponde, en caso de existir.
Puedes probar con la función RECNO(). Esta te devuelve el número de registro donde estás posicionado. Establece una variable tipo Public y asígnale el valor de la función al momento de localizar un dato, ej.: Registro = RECNO()
Imagino que capturas los datos y quedan almacenados en la tabla Alumnos; si te cambias inmediatamente a la otra pantalla, debes tener una referencia que pueda ser 'vista' por ambos procedimientos; por lo tanto debe ser de tipo Public. Con esto no deberías tener problemas.
Pero si la situación es que capturas en una pantalla y eventualmente, al terminar de dar de alta varios registros, te cambias a esa pantalla o a otra y, luego a la que te trae con problemas, lo anterior no te servirá. Prueba con algo como esto:
Estoy suponiendo que existen los archivos de índices que escribí.
SELECT 1
USE CALIF.DBF INDEX ID_ALUMNO.IDX
SELECT 2
USE ALUMNOS.DBF INDEX ID_ALUMNO.IDX
* El último Select es el que queda activo, así que fíjate bien en cual es el que necesitas.
captura de identificación....
* Seek busca en el índice activo de la tabla activa y devuelve Verdadero si localiza un registro coincidente, siempre y cuando SET EXACT sea ON => SET EXACT ON
IF SEEK VAL(Thisform.txtbuscar.value)
Calif.id_alumno = alumnos.id_alumno
Calif.nombre = alumnos.nombre
Calif.paterno = alumnos.paterno
Calif.materno = alumnos.materno
Calif.semestre = alumnos.semestre
Thisform.refresh
Thisform.txtbuscar.visible = .f.
Thisform.cmdmodificar.setfocus
ELSE
messagebox(? ¿Alumno no encontrado?,? ¿Intentalo con otra?)
THISFORM. Cmdbuscar. Setfocus
Endif
* Recuerda que las variables declaradas en un módulo solo existen en ese módulo no en otro; a menos que sean globales.
Espero que esto te sea de utilidad y haya resuelto tus dudas. Hasta pronto y no olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas