Hola cipe22.
Dado que recibis un error
Access Violation, apunto a que estas referenciando un objeto inexistente. Como para ir circunscribiendo el error, intentá hacer esta prueba:
Código Delphi
[-]
procedure UPDATE_f(dataset: TIBQuery; query: string; msgerror: string);
begin
try
ShowMessage(Transaction.Name);
except
raise Exception.Create('Transaction aún no ha sido creado');
end;
try
ShowMessage(dataset.ClassName);
except
raise Exception.Create('dataset aún no ha sido creado');
end;
try
ShowMessage(Form_Seleccion.Caption);
except
raise Exception.Create('Form_Selection aún no ha sido creado');
end;
try
ShowMessage(IntToStr(Form_Seleccion.campo_id_oficial));
except
raise Exception.Create('campo_id_oficial aún no ha sido creado');
end;
end;
Saludos