Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Guillemets et apostrophe

9 réponses
Avatar
Annie L.
Un oubli...
je ne me souviens plus comment faire pour accepter une phrase avec une
apostrophe dans une phrase avec des guillemets..Exemple..:

MaPhraseTexte = "L'actualité"
OleDBConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source='" & MaPhraseTexte & "';Jet OLEDB........"

Il me donne une erreur à cause de l'apostrophe dans ma phrase qui entre en
conflit avec les guillemets..

Comment faire ?

Merci de vos réponses!

9 réponses

Avatar
Jérémy Jeanson
Bonjour Annie,

Il faut prendre ta String et faire un Replace() pour remplacer tes
simple ' par deux
donc Replace "'" par "''"
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Annie L.
Le problème c'est que le nom (exemple) L'actualité est un nom de répertoire
sur le disque dur! Si je mets 2 apostrophe, cela ne représente pas ce que
l'utilisateur veut! Ni sur les rapports d'impression!
Je sais qu'il y a une façon de faire! Je l'avais auparavant mais je l'ai
perdu!
Je vais faire une recherche sur Google! mais il y a une méthode sur comment
procéder et ce directement dans la phrase "..ConectionString =
"Provider......"

Merci!

"Jérémy Jeanson" wrote:

Bonjour Annie,

Il faut prendre ta String et faire un Replace() pour remplacer tes
simple ' par deux
donc Replace "'" par "''"
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr



Avatar
Bill2
Annie L. wrote:
Le problème c'est que le nom (exemple) L'actualité est un nom de
répertoire sur le disque dur! Si je mets 2 apostrophe, cela ne
représente pas ce que l'utilisateur veut! Ni sur les rapports
d'impression!
Je sais qu'il y a une façon de faire! Je l'avais auparavant mais je
l'ai perdu!
Je vais faire une recherche sur Google! mais il y a une méthode sur
comment procéder et ce directement dans la phrase "..ConectionString > "Provider......"




Et pourtant, c'est bien ça la solution !
Le doublement se fait uniquement pour que la requete d'insert ou d'update
soit valide.

Ensuite, lorsque la donnée est récupérée, il n'y a qu'un seul " ' "

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/
Avatar
Annie L.
Tu dis : Et pourtant, c'est bien ça la solution !
Eh bien non! Cela ne fonctionne pas dans mon cas!
Il me donne l'erreur suivante : Le format de la chaîne d'initialisation
n'est pas conforme à la spécification qui débute à l'index 33"
Que j'ai 1 ou 2 apostrophe dans mon mot "L'actualité" ou L''actualité" il ne
passe dans la phrase que j'ai écrit précédemment

MaPhrase = "L'actualité"
...ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' " &
MaPhrase & " ';Jet.OLEDB......."

(J'ai fait des espaces pour que vous voyez bien les apostrophes et les
guillemets)
S'il n'y a pas d'apostrophe dans MaPhrase, cela fonctionne très bien...!
Ce n'est pas dans "MaPhrase" qu'il faut trouver la solution, mais bien dans
...Connectionstring="Provider......"

Merci quand même!


"Bill2" wrote:

Annie L. wrote:
> Le problème c'est que le nom (exemple) L'actualité est un nom de
> répertoire sur le disque dur! Si je mets 2 apostrophe, cela ne
> représente pas ce que l'utilisateur veut! Ni sur les rapports
> d'impression!
> Je sais qu'il y a une façon de faire! Je l'avais auparavant mais je
> l'ai perdu!
> Je vais faire une recherche sur Google! mais il y a une méthode sur
> comment procéder et ce directement dans la phrase "..ConectionString > > "Provider......"
>

Et pourtant, c'est bien ça la solution !
Le doublement se fait uniquement pour que la requete d'insert ou d'update
soit valide.

Ensuite, lorsque la donnée est récupérée, il n'y a qu'un seul " ' "

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/





Avatar
Patrice
Que donne l'utilisation de guillemets pour encadrer le nom de la source de
données (qui contient une apostrophe) ?

Cela donnerait :
MaPhrase = "c:L'actualitéMonFichier.mdb"
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""" &
MaPhrase & """;Jet.OLEDB......."

(il faut doubler les guillemets dans une chaîne litérale).

Donc connectionString contiendra :

Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="c:L'actualitéMonFichier.mdb";Jet.OLEDB.......
qui devrait être une chaine d'initialisaion correcte...

Le reste de la discussion est relatif au guillement dans une instruction SQL
générée à la volée et non pas dans une chaine de connexion...

--
Patrice


"Annie L." a écrit dans le message de
groupe de discussion :
Tu dis : Et pourtant, c'est bien ça la solution !
Eh bien non! Cela ne fonctionne pas dans mon cas!
Il me donne l'erreur suivante : Le format de la chaîne d'initialisation
n'est pas conforme à la spécification qui débute à l'index 33"
Que j'ai 1 ou 2 apostrophe dans mon mot "L'actualité" ou L''actualité" il
ne
passe dans la phrase que j'ai écrit précédemment

MaPhrase = "L'actualité"
...ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' " &
MaPhrase & " ';Jet.OLEDB......."

(J'ai fait des espaces pour que vous voyez bien les apostrophes et les
guillemets)
S'il n'y a pas d'apostrophe dans MaPhrase, cela fonctionne très bien...!
Ce n'est pas dans "MaPhrase" qu'il faut trouver la solution, mais bien
dans
...Connectionstring="Provider......"

Merci quand même!


"Bill2" wrote:

Annie L. wrote:
> Le problème c'est que le nom (exemple) L'actualité est un nom de
> répertoire sur le disque dur! Si je mets 2 apostrophe, cela ne
> représente pas ce que l'utilisateur veut! Ni sur les rapports
> d'impression!
> Je sais qu'il y a une façon de faire! Je l'avais auparavant mais je
> l'ai perdu!
> Je vais faire une recherche sur Google! mais il y a une méthode sur
> comment procéder et ce directement dans la phrase "..ConectionString >> > "Provider......"
>

Et pourtant, c'est bien ça la solution !
Le doublement se fait uniquement pour que la requete d'insert ou d'update
soit valide.

Ensuite, lorsque la donnée est récupérée, il n'y a qu'un seul " ' "

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/







Avatar
Annie L.
Eh bien VOILÀ !!!!!
J'y étais presque car j'ai vu un exemple mais qui utilisait l'apostrophe à
l'intérieur des guillemets!
Cela fonctionne très bien!!!!!

Merci Patrice !


"Patrice" wrote:

Que donne l'utilisation de guillemets pour encadrer le nom de la source de
donnes (qui contient une apostrophe) ?

Cela donnerait :
MaPhrase = "c:L'actualitMonFichier.mdb"
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""" &
MaPhrase & """;Jet.OLEDB......."

(il faut doubler les guillemets dans une chane litrale).

Donc connectionString contiendra :

Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="c:L'actualitMonFichier.mdb";Jet.OLEDB.......
qui devrait tre une chaine d'initialisaion correcte...

Le reste de la discussion est relatif au guillement dans une instruction SQL
gnre la vole et non pas dans une chaine de connexion...

--
Patrice


"Annie L." a crit dans le message de
groupe de discussion :
> Tu dis : Et pourtant, c'est bien a la solution !
> Eh bien non! Cela ne fonctionne pas dans mon cas!
> Il me donne l'erreur suivante : Le format de la chane d'initialisation
> n'est pas conforme la spcification qui dbute l'index 33"
> Que j'ai 1 ou 2 apostrophe dans mon mot "L'actualit" ou L''actualit" il
> ne
> passe dans la phrase que j'ai crit prcdemment
>
> MaPhrase = "L'actualit"
> ...ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' " &
> MaPhrase & " ';Jet.OLEDB......."
>
> (J'ai fait des espaces pour que vous voyez bien les apostrophes et les
> guillemets)
> S'il n'y a pas d'apostrophe dans MaPhrase, cela fonctionne trs bien...!
> Ce n'est pas dans "MaPhrase" qu'il faut trouver la solution, mais bien
> dans
> ...Connectionstring="Provider......"
>
> Merci quand mme!
>
>
> "Bill2" wrote:
>
>> Annie L. wrote:
>> > Le problme c'est que le nom (exemple) L'actualit est un nom de
>> > rpertoire sur le disque dur! Si je mets 2 apostrophe, cela ne
>> > reprsente pas ce que l'utilisateur veut! Ni sur les rapports
>> > d'impression!
>> > Je sais qu'il y a une faon de faire! Je l'avais auparavant mais je
>> > l'ai perdu!
>> > Je vais faire une recherche sur Google! mais il y a une mthode sur
>> > comment procder et ce directement dans la phrase "..ConectionString > >> > "Provider......"
>> >
>>
>> Et pourtant, c'est bien a la solution !
>> Le doublement se fait uniquement pour que la requete d'insert ou d'update
>> soit valide.
>>
>> Ensuite, lorsque la donne est rcupre, il n'y a qu'un seul " ' "
>>
>> --
>> Bill2
>> Utilisez Process Manager, gestionnaire de processus automatique :
>> http://www.bill2-software.com/processmanager/
>>
>>
>>



Avatar
Bill2
Annie L. wrote:
Eh bien VOILÀ !!!!!
J'y étais presque car j'ai vu un exemple mais qui utilisait
l'apostrophe à l'intérieur des guillemets!
Cela fonctionne très bien!!!!!




Oups, autant pour moi, j'ai cru qu'on était dans une instruction SQL, et pas
dans la partie "chemin d'accès à la base"

Donc là, effectivement, si tu n'as pas le choix du répertoire, la soluce de
Patrice est la bonne.

Sinon, je recommande de choisir des noms de répertoires (et de tables dans
les BDD) qui soient "simples" : des lettres, chiffres, et - ou _
Tjs éviter les accents, les points, et tout autre caractères, ça éviter bien
des soucis :)

Bonne chance pour la suite !

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/
Avatar
Patrice
Déformation professionnelle ;-) A la première lecture je me suis retenu pour
ne pas ajouter que le mieux était d'utiliser des paramètres pour les
instructions SQL. Ce n'est qu'après la réponse d'Annie que je me suis rendu
compte moi aussi que cela ne concernait aucunement SQL !!!

--
Patrice


"Bill2" a écrit dans le message de groupe de
discussion :
Annie L. wrote:
Eh bien VOILÀ !!!!!
J'y étais presque car j'ai vu un exemple mais qui utilisait
l'apostrophe à l'intérieur des guillemets!
Cela fonctionne très bien!!!!!




Oups, autant pour moi, j'ai cru qu'on était dans une instruction SQL, et
pas dans la partie "chemin d'accès à la base"

Donc là, effectivement, si tu n'as pas le choix du répertoire, la soluce
de Patrice est la bonne.

Sinon, je recommande de choisir des noms de répertoires (et de tables dans
les BDD) qui soient "simples" : des lettres, chiffres, et - ou _
Tjs éviter les accents, les points, et tout autre caractères, ça éviter
bien des soucis :)

Bonne chance pour la suite !

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/



Avatar
Jérémy Jeanson
Bonjour tout le monde,

Idem j'ai foncé la tête la première dans le vide....

Décidément, hier journée pas terrible...

Bon, SharePoint à nous deux! une autre journée commence!
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr