Problème update avec les guillemets

Fermé
Pitch - 15 oct. 2007 à 11:29
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 15 oct. 2007 à 12:28
Bonjour,

J'ai un table (Table1) avec 2 colonnes (ID,Libelle)
---------------------------------------------------------------------------
ID | Libelle
---------------------------------------------------------------------------
0001 | bonjour c'est un "test" que je suis en train de réaliser.
---------------------------------------------------------------------------

J'ai une autre table (Table2) VIERGE avec 2 colonnes (ID, Libelle)
Au début je crée une requête INSERT pour créer une ligne dans la table2. ce qui me fait :
---------------------------------------------------------------------------
ID | Libelle
---------------------------------------------------------------------------
0001 |
---------------------------------------------------------------------------
Je voudrais faire un UPDATE VBA de ma ligne dans la table2 à partir de table1 donc :
Déclaration des mes objets ADODB blablabla ... blablabla ...

Ct.Open "MaConnexion"
Rs.Open "select * from Table1 where ID=1"
Cd.CommandText = "UPDATE Table2 SET Libelle=""" & rs("Libelle").value & """ where ID = 0001"
Cd.CommandType = 1
Cd.Execute

Fermeture des mes objets blablabla blablabla ...

VOICI MON PROBLEME :
Cette fonction VBA fonctionne très bien mais SI j'ai un libellé où la valeur contient des guillemets alors une erreur intervient.

COMMENT FAIRE POUR REMEDIER A CE PROBLEME DE GUILLEMETS ?

PS : Je sais que certaines personnes vont me dire qu'il faut que je fasse différemment mais il faut absolument traiter mon problème dans le contexte que j'ai donné.

En vous remerciant d'avance.
A voir également:

1 réponse

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 oct. 2007 à 12:28
Bonjour,

Tout d'abord il est préférable d'utiliser la simple côte pour une variable en SQL plutôt que la double côtes. Ensuite je te propose de remplacer les éventuelles (") par des (_) en utilisant la méthode replace(). Pour ça il faut récupérer le Recorset dans une variable de type variant.

Dim strLibelle As Variant

blablabla
..........
strLibelle = rs("Libelle").value
strLibelle = Replace(strLibelle,""","_")
Cd.CommandText = "UPDATE Table2 SET Libelle=" ' " & strLibelle & " ' " where ID = 0001"
..........
blablabla

N'oublie pas de faire une fonction qui fait l'inverse, c'est à dire qui remplace (_) par (") si tu dois ensuite afficher le champ.

Bon courage

;o)
0