Bonjour à tous,
Voilà, j'ai implémenté une procédure de recherche qui a pour but de parcourir 2 tables et d'y retrouver les enregistrements communs aux deux tables, ceux retrouvés sont ensuite insérés au niveau d'une 3ème table...!
Jusque là, tout va bien, j'ai ensuite placé sur ma fiche un ProgressBAr qui devrait donner un aperçu sur l'avancement de la recherche!!
Je l'ai implémenté comme suit au niveau de l'événement OnClick:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
procedure TFAbsence.SearchButtonClick(Sender: TObject);
Var
trouv:boolean;
i,j,k:integer;
begin
 DataModule3.personnel.First;
 DataModule5.TableEvent.First;
 trouv:=false;
  i:=0;
  j:=0;
  k:=1;
  editAbs.Text:='0';
  editAbs.Update;
  editPrs.Text:='0';
  editPrs.Update;
  searchProgBar.Min:=0;
  searchProgBar.max:=datamodule3.personnel.RecordCount;
While not  DataModule3.personnel.Eof do
    begin
     while not DataModule5.TableEvent.Eof do
         begin
           if (DataModule3.personnel.FieldValues['PUCE']=DataModule5.TableEvent.FieldValues['PUCE']) and (trouv=false) then
              begin
               DataModule5.TabTempPrs.Append;
               DataModule5.TabTempPrs.FieldValues['NUM']:=k;
               DataModule5.TabTempPrs.FieldValues['MATRICULE']:=DataModule3.personnel.FieldValues['MATRICULE'];
               DataModule5.TabTempPrs.FieldValues['PUCE']:=DataModule3.personnel.FieldValues['PUCE'];
               DataModule5.TabTempPrs.FieldValues['NOM']:=DataModule3.personnel.FieldValues['NOM'];
               DataModule5.TabTempPrs.FieldValues['PRENOM']:=DataModule3.personnel.FieldValues['PRENOM'];
               DataModule5.TabTempPrs.FieldValues['FONCTION']:=DataModule3.personnel.FieldValues['FONCTION'];
               DataModule5.TabTempPrs.FieldValues['DEPT']:=DataModule3.personnel.FieldValues['DEPT'];
               DataModule5.TabTempPrs.FieldValues['EVENT']:=DataModule5.TableEvent.FieldValues['EVENT'];
               DataModule5.TabTempPrs.FieldValues['DATES']:=DataModule5.TableEvent.FieldValues['DATE'];
               DataModule5.TabTempPrs.FieldValues['HEURE']:=DataModule5.TableEvent.FieldValues['HEURE'];
               DataModule5.TabTempPrs.post;
               i:=i+1;
               k:=k+1;
               editPrs.Text:=inttostr(i);
               editPrs.Update;
               DataModule5.TabTempPrs.Next;
               trouv:=true;
            end;   //end if

            DataModule5.TableEvent.Next;

     end;

            if (trouv=false) then
             begin
              DataModule5.TabTempAbs.Append;
              DataModule5.TabTempAbs.FieldValues['MATRICULE']:=DataModule3.personnel.FieldValues['MATRICULE'];
              DataModule5.TabTempAbs.FieldValues['PUCE']:=DataModule3.personnel.FieldValues['PUCE'];
              DataModule5.TabTempAbs.FieldValues['NOM']:=DataModule3.personnel.FieldValues['NOM'];
              DataModule5.TabTempAbs.FieldValues['PRENOM']:=DataModule3.personnel.FieldValues['PRENOM'];
              DataModule5.TabTempAbs.FieldValues['FONCTION']:=DataModule3.personnel.FieldValues['FONCTION'];
              DataModule5.TabTempAbs.FieldValues['DEPT']:=DataModule3.personnel.FieldValues['DEPT'];
              DataModule5.TabTempAbs.FieldValues['DATES']:=DataModule5.TableEvent.FieldValues['DATE'];
               DataModule5.TabTempAbs.Post;
               j:=j+1;
               editAbs.Text:=inttostr(j);
               editAbs.update;
              DataModule5.TabTempAbs.Next;
              DataModule5.TableEvent.First;
              DataModule3.personnel.Next;

             end; //end if

              if (trouv=true) then
              begin
              DataModule5.TableEvent.First;
              DataModule3.personnel.Next;
              trouv:=false;
              end;

with suiprogressbar4 do
begin
Min:=0;
Max:=datamodule16.DONNEBACS.recordcount;
datamodule16.DONNEBACS.first;
for i:= Min to Max do
begin
position:=i;
datamodule16.DONNEBACS.Next;
edit2.text:=inttostr(Max);
end;       end; //end While
 end;
le problème est que le progressbar passe directement de : 0% à 100% à la fin du traitement de recherche sans faire de progression...
Merci de m'eclairer sur ce point!

Merci Merci Merci