cs_lilj
Messages postés203Date d'inscriptiondimanche 13 décembre 2009StatutMembreDernière intervention 1 avril 2012
-
23 mars 2010 à 10:29
cs_lilj
Messages postés203Date d'inscriptiondimanche 13 décembre 2009StatutMembreDernière intervention 1 avril 2012
-
23 mars 2010 à 17:04
Bonjour tout le monde,
J'essaye tant bien que mal d'insérer un texte dans une base de données Access.
Le problème c'est que mon champ texte contient souvent des virgules ce qui occasionne un bug lors de l'executescalar. En outre voilà :
l'obj.text peut conetnir du texte du type : "bonjour, au revoir" Et cette cette virgule qui entraine une confusion dans la requête. Quelqu'un peut il m'aider ?
Merci.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 23 mars 2010 à 11:44
Salut
Non, pas la virgule mais une éventuelle apostrophe '
Que donne ta requète avant exécution ? un exemple serait le bienvenu pour trouver le problème.
Les délimiteurs de texte, en SQL, sont les '
Si ton texte comporte des ', ça rend la requète bancale.
Il faut doubler les '
Donc, comme tu le verras dans n'importe quelle source liée aux base de données, on n'utilise jamais une TextBox directement : On stocke le contenu de la TextBox dans une variable, puis on s'occupe des caractères spéciaux comme les ' et alors on peut s'en servir dans la requète.
Exemple :
Dim sTexte As String = obj.Text.Replace("'", "''")
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_lilj
Messages postés203Date d'inscriptiondimanche 13 décembre 2009StatutMembreDernière intervention 1 avril 20125 23 mars 2010 à 12:28
En pratique, voici le contexte:
J'ai un form avec différent champ à la fin du form j'enregistre tout les contenus des champs pour les envoyer dans Access. Plus loin dans mon code je fais appel à un CrystalReport qui récupère ces données.
Ainsi, dans mon obj.text et txt.text, il peut y avoir "bonjour, au revoir". La "," a doit donc apparaître pour afficher dans mon Crystal le même texte auparavant saisi. (Sous PHP, MySql la même requête fonctionne très bien). Du coup, lors de l'exécution on aurait :
strSql = "insert into courrier (objet_c, dte_envoi_c, txt_c, num_clt) values('bonjour, au revoir',#2010-02-02#,'bonjour, au revoir',20)"[....] ObjetCommand.ExecuteScalar()
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 23 mars 2010 à 13:51
Je n'ai absolument rien pigé
Ta question concerne l'insertion des données et tu nous montres une requète qui n'a aucun problème de syntaxe.
As-tu vérifier si les données insérées sont conformes ?
Oui : Donc, pas de problème
Non : Je ne comprends pas où est ton problème.
Pourquoi la virgule te tracasse t-elle autant ?
"La "," a doit donc apparaître pour afficher dans mon Crystal le même texte auparavant saisi"
Tu insères un texte avec une virgule : Normal donc que cette virgule réapparaisse.
Elle apparait ? Que vois-tu après traitement par Crystal ?
Est-ce toi qui fait la lecture des données pour les fournir à Crystal ?
Si oui, vérifie ton traitement
Si non, je ne vois pas pourquoi Crystal se mettrait à interpréter les virgules comme séparateur qui découperait ton texte ... mystère
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_lilj
Messages postés203Date d'inscriptiondimanche 13 décembre 2009StatutMembreDernière intervention 1 avril 20125 23 mars 2010 à 14:00
Alors, aprés vérification, effectivement ce n'est pas la virgule mais le " ' " qui prose problème... (autant pour moi)
Donc dès lors que mes champs contiennent "bonjour aujourd'hui" ça bug..
Vous n’avez pas trouvé la réponse que vous recherchez ?