Pb ' dans requête

phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007 - 2 mai 2004 à 20:14
phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007 - 12 mai 2004 à 07:27
Bonjour,

J'ai un petit soucis... je développe actuellement une petite application me permettant de gérer tous mes DVD et le problème survient lorsqu'il y a un apostrophe dans le titre du film. En effet, pour écrire du texte dans une requête sous VB, il faut le mettre entre cotes.

Lorsque j'exécute la requête suivante:

"SELECT... FROM...WHERE ((tbl_film.titre)='" & choix & "')"

choix est une chaîne de caractère contenant le titre d'un film.

lorsque le film est par exemple

Le fabuleux destin d'amélie poulain, l'apostrophe d'amélie me génère une erreur...

Existe - t - il une astuce pour éviter ce problème ???

Merci

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 mai 2004 à 20:39
Re-Salut phoenix91720
En effet, les champs de DB ne doivent pas contenir de ' ni de " sinon, c'est reconnu comme une fin de champ.
Il faut triturer ta variable avant de l'utilsier :
Temp = Choix
Temp = Replace(Temp, "'", "''") ' "+'+" et "+'+'+"
puis
"SELECT... FROM...WHERE ((tbl_film.titre)='" & Temp & "')"

Vala
Jack
0
phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007
2 mai 2004 à 21:27
Ok, çà marche,
J'ai tout pigé !!!

Merci
0
phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007
2 mai 2004 à 23:00
J'ai trouvé un autre pb... :)

Voilà, je souhaite pouvoir modifier le titre d'un film (erreur de saisie par exemple) et son genre.

Pour cela, j'exécute le code suivant:

Case "Modifier"
Set enregistrement.ActiveConnection = Base_film
choix = Replace(lst_liste_films.Text, "'", "'''")
enregistrement.Open "SELECT * FROM tbl_film WHERE " & _
"((tbl_film.titre='" & choix & "') AND (tbl_film.type=" & cbx_type.ItemData(cbx_type.ListIndex) & "))", , adOpenDynamic, adLockOptimistic

enregistrement("titre") = txt_descriptif.Item(0).Text
enregistrement("genre") = cbx_genre.ItemData(cbx_genre.ListIndex)
enregistrement.Update

Le pb, c'est que si je cherche à modifier un film où il y a un apostrophe dedans ( d'Amélie Poulain), il ne trouvera pas tbl_film.titre='" & choix & '" car on aura supprimé l'apostrophe

BIG PB...

ou alors, on modifie le titre dans la base donnée en supprimant le apostrophe. On update, et on remet les apostrophe. Mais là, çà devient lourd... et çà me plaît pas...
En plus, où on remet les apostrophes si on a rajouté une lettre au début par exemple ???

Enfin
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
2 mai 2004 à 23:09
labout

Pour traiter les chaines qui peuvent contenir un ' il faut
var=replace(var,"'","''")
remplace un ' par 2 ' cela ne change en rien dans le stockage

si var='l'apostrophe"
dans ma base j'aurais bien l'apostrophe et non
l''apostrophe.

Pour la recherche utiliser le même principe

Je pense avoir été clair
@+
0

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

Posez votre question
phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007
2 mai 2004 à 23:34
J'ai rien dit, çà marche. je sais pas pourquoi, mais tout à l'heure çà môrchait pô.

J'ai du changer un truc sans faire gaffe.

en fait, dans la requête, quand il voit deux apostrophes à la suite, il sait qu'il ne s'agit pas de délimiteure de texte, mais belle et bien d'un apostrophe, c'est bien çà ???

Une question qui n'a rien à voir... à tout hasard

Quelqu'un sait où se trouve le dossier où sont sauvegarder les favoris ??? Parce que quand je format, j'aimerai bien les garder...( XP familial)

Merci
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
3 mai 2004 à 10:59
Sur XP
Documents and Settings --> <le nom de ton compte>
Tu fouilles la dedans
0
phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007
12 mai 2004 à 07:27
Re salut tout le monde...

Toujours dans la même application, tojours le même problème, sauf qu elà, ce n'est plu quand il y a u apostrophe dans le film que çà bloque, mais quand il y a un tiret. Comme par exemple X-MEN. Si le titre est XMEN çà marche, si c'est X-MEN, çà môrche pô...

Comment qu'on fait-il donc ????

Il y a d'autre caractère comme çà où il faut faire un traitement spécifique avant ?

Merci
0
Rejoignez-nous