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
sDate := InputBox('Fecha del curso', 'Introduzca kla nueva fecha para el curso:', DateToStr(Date));
cDate := StrToDateDef(sDate, now);
tablaEstudiantes.Open;
tablaEstudiantes.Append;
tablaEstudiantes.FieldByName('fecha_curso').AsDate := cDate;
tablaEstudiantes.FieldByName('Nombre').AsString := AdoEstudiantes.FieldByName('Nombre').AsString;
tablaEstudiantes.FieldByName('Apellidos').AsString := AdoEstudiantes.FieldByName('Apellidos').AsString;
...
tablaEstudiantes.Post;
end;