Chercher dans une bdd a l'aide des checkbox

Résolu
coeurblanc1351 - 29 juin 2013 à 17:08
coeurblanc1351 Messages postés 3 Date d'inscription mardi 8 janvier 2013 Statut Membre Dernière intervention 20 juillet 2013 - 15 juil. 2013 à 21:04
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

solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 10
11 juil. 2013 à 00:39
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
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 juil. 2013 à 14:30
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
0
coeurblanc1351 Messages postés 3 Date d'inscription mardi 8 janvier 2013 Statut Membre Dernière intervention 20 juillet 2013
15 juil. 2013 à 21:04
salut

merci beaucoup solilog.
0
Rejoignez-nous