Problème d'aporstophe, avec la fonction replace

Résolu
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009 - 14 avril 2007 à 17:37
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009 - 15 avril 2007 à 16:59
B'jour!

J'ai consulté différentes solutions pour pouvoir insérer des champs contenant des apostrophes dans une base de données excel. En gros j'ai bien compris qu'il faut utiliser la fonction "replace" mais à chaque fois l'exemple est donné pour un argument "précis". En gros ils donnent l'argument "l'école" alors que moi ça sera un argument... pioché dans mon formulaire puisque venant de mon programme VB.

Voici la partie de code qui me pose problème, avec la fonction replace certainement mal utilisée. Je cherche à convertir les apostrophes du champ "synopsis" en priorité. Pour les champs "Titre" et "emplacement" je m'en occuperai par la suite, par copier coller de la bonne méthode :D

   SQL = "Insert into dvd (nomFilm,anneeFilm,synopsis,emplacementFilm) values ('" & txtTitreFilm.Text & " ',' " & txtAnneeFilm.Text                 & "','" & txtSynopsisFilm.Text & "','" & txtEmplacementFilm.Text & "')"
        recFilm.Open SQL
        SQL = Replace(txtSynopsisFilm.Text, "'", """")

Merci à vous de me permettre de progresser  :)

David

12 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 16:34
Vu la syntaxe, tu dois être en VB6, fais peut-être comme ceci :

SQL = "Insert into dvd (nomFilm,anneeFilm,synopsis,emplacementFilm)
values ('" & Replace(txtTitreFilm.Text, "'", "''") & " ',' " &
Replace(txtAnneeFilm.Text, "'", "''") & "','" &
Replace(txtSynopsisFilm.Text, "'", "''") & "','" & Replace(txtEmplacementFilm.Text, "'", "''") &
"')"

recFilm.Open SQL

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
Utilisateur anonyme
14 avril 2007 à 18:33
Salut,

Déjà, tu n'utilse pas les bonnes fonctions.
Utilise plutot les fonction du framework

Et dans ce sens irrait beaucoup mieux:
SQL = "Insert into dvd (nomFilm,anneeFilm,synopsis,emplacementFilm) values ('" & txtTitreFilm.Text.Replace("'"c, """"c) & " ',' " & txtAnneeFilm.Text.Replace("'"c, """"c) & "','" & txtSynopsisFilm.Text.Replace("'"c, """"c) & "','" & txtEmplacementFilm.Text.Replace("'"c, """"c) & "')"





__________
 Kenji
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
15 avril 2007 à 15:05
Merci beaucoup pour ta réponse.

Cependant ça ne fonctionne pas ici. Lorsque je remplace ma ligne par la tienne il me met d'abord le premier "c" en surbrillance. Je ne sais vraiment pas à quoi sert ce "c"... En supprimant les "c" il me met une autre erreur en me surlignant le ".Text" dans txtTitreFilm.Text.Replace("'"c, """"c) & " ' en me disant "qualificateur incorrect".

Merci de votre aide!

David
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
15 avril 2007 à 15:35
Précision: Lorsque je mets la ligne qui m'a été donnée l'erreur est la suivante : Erreur de compilation:
Attendu: Séparateur de liste ou )

et il me surligne le premier "c" juste après ('" & txtTitreFilm.Text.Replace


Merci ;)

PS: Je ne trouve pas comment corriger le titre de mon post et supprimer la faute de frappe à "apostrophe"... SVP :D
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 15:49
C'est pas plutôt Replace(c, "'", "''") ??
Dans le premier "", il y a UNE apostrophe (quote), dans le second, il y a DEUX apostrophes (et pas des guillemets)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
15 avril 2007 à 16:09
En utilisant ta proposition mortalino, j'ai la même erreur que si je supprime les "c" (peux-tu m'expliquer à quoi correspond le "c" stp?). J'ai donc cette erreur là:

Il me surligne le ".Text" dans txtTitreFilm.Text.Replace("'"c, """"c) & " ' en me disant "qualificateur incorrect".

merci de toi aide ;)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 16:17
Ah je sais pas, j'ai vu c donc je pensais que c'était une variable.
Pas encore en DotNet à 100% donc peux pas vraiment t'aider, désolé.

Regarde Replace dans ton explorateur d'Objets (F2), tu devrais trouver la syntaxe (ou dans F1)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
15 avril 2007 à 16:29
Hum... je ne suis pas non plus en DotNet... si? lol Je ne sais même pas la différence entre VB, VBA, .net et tout ça. Je ne m'en préoccupe pas... je devrais?

Bon, pour le replace, j'ai trouvé ça "Function Replace(Expression As String, Find As String, Replace As String, [Start As Long = 1], [Count As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) As String
"

Ca ne m'avance pas beaucoup personnellement parce que je ne sais pas ce qu'ils entendent par "expression"... Mais je viens de remarque que je peux changer "c" par n'importe quoi d'autre, l'erreur reste toujours la même, c'est le .Text qui est surligné.
En supprimant .Text, ça plante encore plus.

Merci de votre patience ;)

David
0
Utilisateur anonyme
15 avril 2007 à 16:31
Le c indique que c'est un caractere.

txtTitreFilm est t-il bien une TextBox ?





__________
 Kenji
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
15 avril 2007 à 16:39
yeeeeeeeeeeeeeeeeeeeeeeesssssssssss! Excellent!

Oui je confirme je suis en VB6 :)

J'ai compris ta réponse. Merci énormément :D

Bonne fin d'après midi ;)

David
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 avril 2007 à 16:49
De rien,

pour complêter tes demandes, le terme expression signifie que la fonction attend une chaine de caractère (soit un mot entre guillemets, soit la propriété Text d'un objet)

Ensuite, VBA, c'est le VB qui est inclu avec Excel, Word, et autres application de la suite Office.
VB6, c'est le bon vieu VB (obsolète dans un futur [très ?] proche, ne se vend plus)
VB .Net, (se lit DotNet) c'est VB 2005 (ou VB8), nouveau langage orienté objet (POO) lié au framework (contenant moultes fonctions utilisables depuis tout langage .Net, comme Asp .Net)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
15 avril 2007 à 16:59
Super merci pour ces renseignements :)

J'en déduits donc que VBA sert notamment à faire des macros Word ou Excel?

Bon, en tout cas, je reste avec mon VB6 pour le moment :)

Merci encore ;)

David
0
Rejoignez-nous