Hola
El asunto es que llamas a una consulta total y tambien a una suma, esto confunde a la bd y no genera el dato.
Hay que buscar el dato que se necesita, no mas, en este caso solamente al campo Matricula y la suma de los campos que necesitas.
Otra cosa es darle a estas sumas un nombre que no sea igual al de un campo, no solo por la bd, tambien por no confundirse uno mismo.
Código Delphi
[-]
procedure TForm1.Button2Click(Sender: TObject);
begin
try
if Edit1.Text ='' then
showmessage ('Falta MATRICULA');
except
showmessage ('Falta MATRICULA');
Query1.SQL.Text := ' select Matricula, (exp + expgrup + pract1 + pract2 + pract3 + pract4 + pract5 + trab_final) As pract,'+
'( parcial1 + parcial2 + practica + final ) As tfin from 20092';
Query1.Open;
while not Query1.Eof do
begin
Qtemp.sql.Text := 'Update 20092 set practica = '+Query1.fieldbyname('pract').AsString+' where Matricula = '+QuotedStr(Edit1.Text);
Qtemp.ExecSQL;
Qtemp.SQL.Text := 'Update 20092 set tfinal = '+Query1.fieldbyname ('tfin').AsString+ ' where Matricula = '+QuotedStr(Edit1.Text);
Qtemp.ExecSQL;
Query1.Next;
end;
Query1.Close;
Query1.Open;
end;
end;
Si hicieras un showmesage al final de la consulta verias que en tu caso no devuelve nada y por supuesto nada da.
Saludos