Re: Recherche ( très souple )

Posté par drcharly93 le 31/10/2007 15:38:25
Bonjour,

Le principe reste le même,
si il s'agit d'un champ qui ne contient qu'une seule pas de problème pour les liste vous pouvez faire une boucle comme dans l'exemple fourni.
tblVar est un tableau dynamique de 0 Chaines
Ind est un entier
sCondition est une chaine
Rs est une source de donnees
Sql est une chaine

//On remplie un tableau avec les valeurs voulues
TableauAjoute(tblVar, "Allergie")
TableauAjoute(tblVar, "Asthme")
TableauAjoute(tblVar, "Machine")

//On construit la condition
Pour Ind = 1 a Dimension( tblVar)
 sCondition += RC + "[Difficultés] LIKE '%" + tblVar[Ind] + "%' "
Fin

Si SansEspace(ValNom) <> "" Alors
  sCondition += " AND [ChampNom]='" + ValNom + "' "
Fin

Si SansEspace(ValEtc) <> "" Alors
  sCondition += " AND [ChampEtc]='" + ValEtc + "' "
Fin

//On construit la requête
Sql =
[
SELECT * 
FROM MaTable
WHERE @Condition
]

//On execute la requete
Sql = Remplace( Sql, "@sCondition", sCondition )
Si pas HExecuteRequeteSql( Rs, HRequeteDefaut, Sql ) Alors
  Erreur( HErreurInfo())
  Retour
Fin

POUR TOUS RS
  //Traitement des données ici
FIN

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=5474&post_id=22500