Re: Meilleure solution pour faire une recherche multi criteres

Posté par Sogestion le 11/4/2006 14:13:34
Bonjour,

Exemple de code qui fonctionne correctement

Les critères sont repris dans des champs de saisies qui renvois NULL si vide < RNom, RAdresse .... >


LOCAL
SrcReq est une source de données
sCodeSQL est une chaîne

HAnnuleDéclaration(SrcReq)

// [< Code de la requête >]
sCodeSQL = [
SELECT [IDContact], [Nom], [Adresse], [CodePostal], [Ville], [NomContact], [Activité]
FROM Contact
WHERE [Nom] LIKE '%1%'
AND [Adresse] LIKE '%%%2%%'
AND [CodePostal] LIKE '%3%%'
AND [Ville] LIKE '%%%4%%'
AND [Activité] LIKE '%%%5%%'
AND [NomContact] LIKE '%%%6%%'
ORDER BY [Nom] ASC
]

// [< Construire requêtes >]
sCodeSQL = ChaîneConstruit(sCodeSQL, RNom, RAdresse, RCpostal, RVille, RActivité, RContact)

SI PAS HExécuteRequêteSQL(SrcReq, sCodeSQL) ALORS
Ouvre(MsgBox, " Requête", ">>> Erreur d’initialisation de la requête"+RC+HErreurInfo(), 2)
RETOUR
FIN

NbEnreg = HNbEnr(SrcReq)

SI NbEnreg > 0 ALORS

TableRecherche..FichierParcouru = "SrcReq"
TableAffiche(TableRecherche, taDébut)
EcranPremier(TableRecherche)

SINON

Ouvre(MsgBox, " Recherche", ">>> Aucun enregistrement pour cette sélection ...", 1, 1, 280, 225)
HAnnuleDéclaration(SrcReq)
ExécuteTraitement(BTAnnulCritere,trtClic)

FIN

Cordialement

Albert

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=3844&post_id=16168