Ver Mensaje Individual
  #4  
Antiguo 05-02-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.439
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Por favor, utiliza TAGs cuando añadas código delphi.

Volviendo a tu pregunta...
En tu formulario cuando haces la búsqueda, el registro en el que te has posicionado (y que se ve en pantalla) apunta a un registro ya creado de un alumno (con los datos guardados en Base de Datos).
Si cambias la fecha y guardas, se va a modificar el registro existente (no es lo que quieres).
No puedes usar los componentes visuales para lo que necesitas (INSERTAR UNO NUEVO), porque están apuntando al registro existente (BUSQUEDA).

Una forma de conseguir lo que necesitas es, hacer la nueva inserción por código, por ejemplo un botón que diga [GENERAR NUEVO REGISTRO], manteniendo el registro que tienes en pantalla para aprovechar los datos que tienes y no tener que volver a escribirlos.

Ese botón debería:
1) Pedir la nueva fecha (porque es el dato que quieres cambiar
2) Coger el resto de datos del estudiante del registro que tienes n pantalla (para no tener que repetirlos)
3) Generar un nuevo registro e insertarlo.

El código del botón sería algo así:

Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
var
  sDate:string;
  cDate:TDate;
begin
  // leemos la fecha como cadena
  sDate := InputBox('Fecha del curso', 'Introduzca kla nueva fecha para el curso:', DateToStr(Date));
  // Intentamos convertirla
  cDate := StrToDateDef(sDate, now);
  // realizamos la inserción del nuevo registro
  tablaEstudiantes.Open;
  tablaEstudiantes.Append;
  // rellenar la fecha y el resto de campos (estos de lo que hay en pantalla)
  tablaEstudiantes.FieldByName('fecha_curso').AsDate := cDate;
  tablaEstudiantes.FieldByName('Nombre').AsString := AdoEstudiantes.FieldByName('Nombre').AsString;
  tablaEstudiantes.FieldByName('Apellidos').AsString := AdoEstudiantes.FieldByName('Apellidos').AsString;
  ...
  // insertar el nuevo registro
  tablaEstudiantes.Post;
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita