Re: recherche

Posté par drcharly93 le 10/3/2008 22:00:44
Bonjour,

Question peu explicite !!!
Il est possible d'effectuer ce type de recherche de la façon suivante :
Dans mon exemple je prends le cas d'une rechercher sur le nom d'un client issu d'une table tblClients
La saisie de la valeur à rechercher se trouve dans le champs rech_Nom
La recherche s'effectue pour eviter trop d'attente entre chaque caractère saisie à la sortie du champ ou bien dans le code d'un bouton
La liste se nomme lstClients

Sql est une chaine
Rs est une source de donnees 

Sql =
[
SELECT Nom, Id
FROM tblClients
WHERE Nom Like '%
]

Sql += rech_Nom + "%'" ORDER By Nom

SI Pas HExecuteRequeteSql( Rs, HrequeteDefaut, Sql ) Alors
  Erreur( HErreurInfo() )
  Retour
Fin

ListeSupprimeTout( lstClients )
Pour Tous Rs
  ListeAjoute( Rs.Nom )
Fin


Plusieurs variantes existentent
- en utilisant meme la phonetique
- en laissant l'utilisateur saisir lui meme les jokers
DU%
donne DUPONT, DURAND, DUCHMOL
%NT
Donne DUPONT, MARRANT, MERLANT
%ER%
Donne BERNARD, MERLANT, FERRANT
On peut faire aussi
%R__D%
Donne DURAND, FARRANDOLE
Ici les _ represente un caractère quelconque tandis que % représente une suite de caractère quelconque.

Pour être plus près de windows on pourrait laisser saisr des * et des ? puis les remplacer pour la construction de la chaine SQL

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=15&topic_id=5744&post_id=23410