Code 2 à tester

cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013 - 16 sept. 2002 à 21:43
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 18 sept. 2002 à 00:53
salut,

je voulais faire un filtrage sur une table en utlisant les numeros d'enregistrements pour recuperer
la valeur du premier champ et ensuite etablir mon filtre.

mais voila ca n'a pas bien marché.

------------------------------
var
Form1: TForm1;
RECN1, RECN2 : longint;
.
.
.

procedure TForm1.Button1Click(Sender: TObject);
var
allrec :longint;
combien:longint;
i : integer;
begin
combien:=3; //combien de record dans une seule fois
RecN1:=1;
RecN2:=RecN1+combien;
allrec:=kiosque.RecordCount;
Table1.Filtered:=true; // voir table1 OnFilterRecord event
While RecN1<=allrec do begin
DBGrid1.DataSource:=DS;
Showmessage('les : '+IntToStr(RECN1)+' à '+IntToStr(RECN2)+' Enreg. de la TABLE1.DB');
sleep(500);
DBGrid1.DataSource:=NIL;
//-------
RecN1:=RecN2+1;
RecN2:=RecN1+how_much;
end;
table1.Filtered:=false;
end;

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var
s1, s2 : string;
begin

s1:=''; s2:='';
Accept:=false;
with Table1 do
begin
// 1ere
showmessage('RECN1='+IntToStr(recn1));
recno:=recn1;
showmessage('le 1er record actif est :'+IntToStr(recno)+' '+fieldbyname('ref').asstring );
s1:=Fieldbyname('Champ1').AsString;
label2.Caption:='s1='+s1;

// 2eme
showmessage('RECN2='+IntToStr(recn2));
recno:=recn2;
showmessage('le 2eme record actif est :'+IntToStr(recno)+' '+fieldbyname('ref').asstring);
s2:=Fieldbyname('Champ1').asstring;
label3.Caption:='s2='+s2;
end;

Accept:=(DataSet.FieldByName('Champ1').asstring>=s1)and(DataSet.FieldByName('Champ1').asstring<=s2);

end;
---------------------


qlq peut le tester pour moi et me dire ou se situ la faille ?

Merci.

1 réponse

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
18 sept. 2002 à 00:53
Ici ce n'est pas possible : RecNo et RecordCoount ne sont pas valides sur les tables filtrées !!!
Donc dés que Filtered=True, RecNo et RecordCount valent 1 quelque soit la position ou le nombre de lignes.

--- :sleepy) Nono du Moulin :sleepy) ---
0
Rejoignez-nous