Hola
Estas utilizando un mismo query para obtener la información pasándosela a una variable y luego sin cerrar el query lo limpias.
Ademas usas el termino from en el update, eso no va.
Me parece que deberías usar dos query asi:
Código Delphi
[-]
Código Delphi [-]dm1.IBQuery1.SQL.clear;
dm1.IBQuery1.sql.Text := 'Select cod_producto,stk_actualk,stk_actuale from productos';
dm1.IBQuery1.Open;
actual := dm1.IBQuery1.Fields[1].Value;
dm1.IBQuery2.sql.Text := 'Update productos set stk_actualk = :vara where cod_producto = :varb';
dm1.IBQuery2.ParamByName('vara').AsInteger := actual;
dm1.IBQuery2.ParamByName('varb').AsInteger := strtoint(dbedit2.text);
dm1.IBQuery2.ExecSQL;
Saludos