Hola Jafera. Prueba el siguiente código:
Código Delphi
[-]
procedure TF_Actualitza.BitBtn1Click(Sender: TObject);
var i:integer;
tmpQuery: TIBQuery;
begin
If RadioGroup1.ItemIndex=0 then
begin
F_Confirmacio := TF_Confirmacio.Create(self);
F_Confirmacio.Label1.Caption:= 'Aquesta acció actualitzarà el Master';
F_Confirmacio.Label2.Caption:= 'general amb les noves dades';
F_Confirmacio.Label3.Caption:= 'Estas segur?';
if not (F_Confirmacio.ShowModal = mrok) then
Abort;
end;
try
tmpQuery := TIBQuery.Create(Selft);
tmpQuery.SQL.Add('SELECT DNI FROM CU0001 WHERE DNI=NI_in_txt');
F_ModulDades.MasterE.Close;
F_ModulDades.MasterE.Open;
F_ModulDades.Master.Close;
F_ModulDades.Master.Open;
F_ModulDades.MasterE.Last;
Progressbar1.Max := F_ModulDades.MasterE.RecordCount;
F_ModulDades.MasterE.First;
while not F_ModulDades.MasterE.Eof do
begin
with tmpQuery do
begin
if not Active then
Close;
ParamByName('DNI_in_txt').AsInteger := F_ModulDades.MasterEC11.Value;
if not Prepared then
Prepare;
Open;
end;
if tmpQuery.isEmpty then
begin
i:=F_ModulDades.MasterID_CORREDOR.Value+1;
F_ModulDades.Master.Insert;
F_ModulDades.MasterID_CORREDOR.Value:=i;
end
else
begin
F_ModulDades.Master.Edit;
end;
F_ModulDades.MasterNOM.Value:=F_ModulDades.MasterEC5.Value;
F_ModulDades.MasterCOGNOM1.Value:=F_ModulDades.MasterEC6.Value;
F_ModulDades.MasterCOGNOM2.Value:=F_ModulDades.MasterEC7.Value;
F_ModulDades.MasterCODI_CAT.Value:=F_ModulDades.MasterEC8.Value;
F_ModulDades.MasterNACIO.Value:=F_ModulDades.MasterEC9.Value;
F_ModulDades.MasterLLICENCIA.Value:=F_ModulDades.MasterEC10.Value;
F_ModulDades.MasterCODIUCI.Value:=F_ModulDades.MasterEC12.Value;
F_ModulDades.MasterCLUB.Value:=F_ModulDades.MasterEC13.Value;
F_ModulDades.MasterPUBLICITAT.Value:=F_ModulDades.MasterEC15.Value;
F_Moduldades.Master.Post;
Progressbar1.Position := F_ModulDades.MasterE.RecNo;
F_ModulDades.MasterE.Next;
end;
finally
F_Confirmacio.Free;
tmpQuery.Free;
ShowMessage('Procés finalitzat');
end;
end;
No sé si valla a servirte, pues tu código es un algo complicado de entender si no tienes a mano la estructura de componentes y objetos de datos que estás utilizando. Sin embargo, creo que a pesar de todo, este código limpio y optimizado pueda ayudarte a ganar tiempo.
Saludos.