Recherche de nom

Résolu
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 - 4 août 2006 à 12:59
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 4 août 2006 à 20:09
Bonjour,


Pour rechercher des noms dans une base acces



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Voilà quand je met un nom entier (dupond) çà marche très bien, mais quand je met un nom avec « ‘ » (d’archi) çà me donne une  erreur de syntaxe (operateur absent)  dans l’expression[nom] like '%d’archi".



 




CODE :



table.Open "SELECT * FROM [clients] WHERE [nom] like '%" & Text1.Text & "%' ", bd, adOpenKeyset, adLockBatchOptimistic




Set LstItem = lstview1.ListItems.Add(, , (table!nom) + "  " + (table!prenom)

8 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
4 août 2006 à 13:16
Salut, si tu as des apostrophes dans Text1.text, code ça :

table.Open "SELECT * FROM [clients] WHERE [nom] like '%" & Replace(Text1.Text, "'", "''") & "%' ", bd, adOpenKeyset, adLockBatchOptimistic
3
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
4 août 2006 à 13:02
Ce n’est pas un ? mais un Apostrophe


Je viens de voir l’erreur<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>



 
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 août 2006 à 15:35
Bonjour,
C' est pas un problème de recherche partielle.
L' apostrophe étant un caractère reservé aux expressions SQL,
le compilateur l' interprète comme tel.
Or dans "d' archi", il faudra qu' il y' ait "d'" & "archi" pour que ton expression
soit correcte.
Tu es d' accord avec moi qu' on peut pas s' ammuser à faire ça avec tout les noms recherchés.c' est pourquoi il faut interdire la saisie des apostrophes et des astérisques
 et autres opérateurs spéciaux dans les valeurs des champs sur les quels on effectue
des recherches.
exemple :
Au lieu de "d' archi" il faut avoir "d archi".
J' espère que j' étais explicit.
Bon courage.
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
4 août 2006 à 16:01
chaibat05> à moins que tu aies des clients dont le nom contient une apostrophe et qui y tiennent. Il y en a plus qu'on croit.
Tant que c'est pour de gestion dont les clients n'ont pas connaissance, tu fais ce que tu veux mais si le fichier sert à éditer des factures, créer des mailings, ... il vaut mieux garder les apostrophes, ça ne coùte pas grand-chose (replace(nomsaisi, "'", "''")).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bricoyeye Messages postés 326 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 avril 2008 2
4 août 2006 à 16:41
Merci bien Dolphin pour la réponse, çà marche!!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 août 2006 à 17:23
Oui mais si tu remplace "d' archi" par "d"'" archi" ,
la recherche ne se fera pas sur "d' archi" mais sur "d"'" archi" et dans ce cas tu ne
trouvera pas d' occurence.Tu vois ce que je veux dire.

Quand je dis qu'  il ne faut pas avoir de "d' archi" du tout, ça c' est du point de vue théorique.

Mais en réalité, c' est comme tu dis, il y ' as des clients qui tiennent a l' orthographe
de leurs noms. et qu' il faut composer avec ça.

Moi ce que j' ai essayé de faire c' est d' expliquer la cause de l' erreur, car c' était ça la question de bricoyeye : Pourquoi ...?

A partir de là chacun trouvera sa propre solution à son propre problème.
Personnellement je traville avec les correspondances.Comme ça je me plie aux
éxigences du client  tout en respectant les contraintes du langage.

A+
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
4 août 2006 à 19:06
No souci <chaibat05> je ne doute pas de tes compétences, on est OK, mais je crois que le mieux est que tu fasses l'essai. Dans une requête SQL, à partir de VB, il faut remplacer les quotes "'" par des doubles quotes "''". Ces dernières ne seront interprétées, dans la chaine transmise, que comme une simple quote. Et je te garantis que tu trouveras les bonnes occurences.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 août 2006 à 20:09
Re bonjour,
@Dolphin Boy
Comme tu dis on est Ok. Et c' est Ok pour ta suggestion.
Je comprend maintenant pourquoi j' aime les Dauphins !
Avec eux au moins, on est en bonne compagnie.

A+
0
Rejoignez-nous