Recherche multicritères

Signaler
Messages postés
7
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
29 avril 2004
-
Messages postés
31
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
10 mars 2009
-
Bonjour,

Je dois élaborer un système de recherches multicritères. J’ai donc une requête SQL ( qui fonctionne correctement ) ou j’ai essayé de mettre mes conditions en para mêtre ( méthode like ). Ca marche sans marcher…
Pour que j’obtiennes un résultat dans mon DBGrid, il faut que mes menus déroulants ( mes critères de recherches ) soient remplis. Je voudrais par exemple choisir comme critères « CD-R » et « 700 Mo » et obtenir seulement les cdroms de type CD-R ayant une capacité de 700 Mo… et non le contenu de la requête.

Avez-vous une idée où savez vous faire ce genre de manip ?

Merci,

stampe
apprenti programmeur :big)

1 réponse

Messages postés
31
Date d'inscription
lundi 27 janvier 2003
Statut
Membre
Dernière intervention
10 mars 2009

Si j'ai bien compris ton problème, tu as deux solutions :

* poser un filtre sur ta requête en fonction de tes critères :
Query.filtered:=false;
if critere1 <>'' then
Query.filter:=Query.filter + 'and capacite=7000';
.....
Query.filtered:=true;
De cette manière ton ensemble de données ne sera
composé que de la résultante de ton filtre.

* formaté ta requête :
dans la propriété string de ta requête, ajouter à la fin %s.
une fois que tes critères sont posés, u n'as plus qu'à
ajouter dans une variable tes critères :
' and capacite = 700 and cdroms=CD-R'.
puis tu formates ta requête :
Query.sql.text:=format(Query.sql.text,[mavariable]);
le %s que tu as ajouté sera transformé par ta variable.