Chercher dans une bdd a l'aide des checkbox [Résolu]

Signaler
-
coeurblanc1351
Messages postés
3
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
20 juillet 2013
-
salut

pour faire une recherche j ai utilisé un RadioGroupe, pour pricisé la condion de recherche(une seul condion à la fois)
chaque radio bouton port une condition:
radio bouton1:chercher par numero de poste
radio bouton2:chercher par numero de serie
radio bouton3:chercher par Nom de poste
.
.
.

if RadioGroup1.ItemIndex = 0 then
begin dataModule1.Tposte.IndexName := ''; query1.Close; query1.ParamByName('n').Value := strtoint (edit1.Text) query1.Open
else
showmessage ('Numéro de Poste Introuvable')
end
else
if RadioGroup1.ItemIndex=1 then
begin DataModule1.Tposte.IndexName := 'IX_Num_serie';
query2.Close; query2.ParamByName('n').Value :=edit1.Text;
query2.Open;
else
showmessage ('Numéro de serie Introuvable');
end
else
if RadioGroup1.ItemIndex=2
.
.
.

jusqu’au ici tout va bien.
par contre mon souci comment utilisé la même méthode mais a l'aide des checkbox pour avoir la possibilité de cherché par une ou plusieurs condition en même temp.

3 réponses

Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
9
Bonsoir,
Tu veux sélectionner des records selon 1..n critères:
exemple avec des 3 checkbox et 3 edit
cbx_NumPost edt_NumPost
cbx_NomPost edt_NomPost
cbx_NomSeri edt_NumSeri
tu mets la propriété Filtered de la table/query à true
tu cherches l'évènement Onfilterrecord:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
   if cbx_NumPost.checked        // on doit checker le numpost
      and fieldbyname('NUMPOST').asstring  <> edt_NumPost.text
   then accept := false
   else if cbx_NumSeri.checked   // on check le Num de serie
      and fieldbyname('NUMSERI').asstring  <> edt_NumSeri.Text
      then accept := false
   else if cbx_NomSeri.checked   // on check le Nom
      and fieldbyname('NOMSERI').asstring  <> edt_NomSeri.Text
      then accept := false
   else
      accept ;= true;
end;

Et ca devrait marcher.
salut.
solilog
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
bonjour,

il faut placer des checkbox en dehors d'un radiogroup
puisque par définition, celui-ci traite de manière exclusive le
choix sélectionné.
ainsi, tu pourras cliquer une ou plusieurs conditions à la fois.

il faudra bien entendu adapter des requêtes SQl en conséquence
avec des paramètres comme tu as commencé à le faire.


cantador
Messages postés
3
Date d'inscription
mardi 8 janvier 2013
Statut
Membre
Dernière intervention
20 juillet 2013

salut

merci beaucoup solilog.