Problème update avec les guillemets
Pitch
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
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.
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:
- Problème update avec les guillemets
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Windows update windows 10 - Guide
1 réponse
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)
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)