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

Signaler
-
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
10
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
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
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.