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