Apostrophe dans combobox [Résolu]

Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 7 avril 2014 à 18:07
Bonjour,
dans ma combobox je récupère des données de ma base, quand je clic sur une donnée comme celle la pas de problème :
Bouche coupe-feu 2H Ø 125
mais quand il y a une apostrophe comme cette donnée :
Bouteille d'injection 12 litres
j'ai une erreur de syntaxe
y à t'il moyen de contourner ce probleme ?
voila le code :
Private Sub cbb_matiere_Click()
Call Connect
    Sql = "Select * From articles_2 where T_Designation='" & cbb_matiere.Text & "'"
    Rs.Open Sql, Db, adOpenStatic, adLockPessimistic
    If Rs.RecordCount > 0 Then
        txt_prix1.Text = Rs.Fields("T_Prix") & " €"
        Text5.Text = Rs.Fields("T_Index")    
 End If
    Call Deconnect
End Sub


merci
bonne journée
Afficher la suite 

Votre réponse

14 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Ta question revient simplement à insérer entre guillemets dans une chaîne de caractères (ce qu'est ta variable SQL), une variable dont la valeur contient ou pourrait contenir une ou plusieurs apostrophes.
Plusieurs manières possibles, dont celle-ci ==>>
sql = "Select * From articles_2 where T_Designation= " & "''" & cbb_matiere.txt & "''"
Vrai que ce soit pour une requête ou pour n'importe quelle autre chaîne de caractères.

EDIT : et peux-tu me confirmer que tu développes bien sous VB, que je puisse déplacer en connaissance de cause la présente discussion, que tu as ouverte dans le forum général de visual basic, ce qui ne permet pas de déterminer ton langage de développement ?
Commenter la réponse de ucfoutu
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
merci ucfoutu pour ta réponse,mais j'ai toujours l'erreur de syntaxe

je développe en VB6
Commenter la réponse de cs_petchy
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Quelle "erreur de syntaxe" ? et sur quelle ligne ?
Pour ton info, j'ai testé ma réponse.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
AH ;;; j'espère que tu as bien corrigé (faute de frappe) : cbb_matiere.txt par cbb_matiere.text Evident ...
Commenter la réponse de ucfoutu
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
oui j'avais corrigé

sinon l'erreur se situe sur cette ligne
Rs.Open Sql, Db, adOpenStatic, adLockPessimistic
Commenter la réponse de cs_petchy
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
l;a ligne que tu montres-là n'a rien à voir avec le problème de l'apostrophe, sauf si tu as mal copié/collé mon code.
On va le savoir :
Montre ce que t'affiche Msgbox SQL.
Commenter la réponse de ucfoutu
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
pourtant j'ai bien recopié ton code.

le Msgbox m'affiche
"erreur d'exécution

erreur de syntaxe (opérateur absent) dans l'expression
T_designation=
Commenter la réponse de cs_petchy
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Msgbox SQL

ne saurait t'afficher "erreur d'exécution " !

Montre ton code, tel qu'il est (copié/collé).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Commenter la réponse de ucfoutu
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
Private Sub cbb_matiere_Click()
Call Connect
   sql = "Select * From articles_2 where T_Designation= " & "''" & cbb_matiere.text & "''"
    Rs.Open Sql, Db, adOpenStatic, adLockPessimistic
    If Rs.RecordCount > 0 Then
        txt_prix1.Text = Rs.Fields("T_Prix") & " €"
        Text5.Text = Rs.Fields("T_Index") ' & " €"
    End If
    Call Deconnect
End Sub
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
C'est une plaisanterie ?
Où est la ligne MsgBox sql que je t'ai demandé d'ajouter et dont tu me dis qu'elle afficherait "erreur d'exécution " ?
Ce n'est pas sérieux ...
Commenter la réponse de cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
désolé, je pensais que tu me parlais de l'erreur qui m'affichait.
comment ajoute t'on un msgbox sql ?
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Désolé, mais je te laisse alors là car ta question "m'assois" littéralement de la part d'un développeur (qui ne saurait même pas ce qu'est MSGBOX, mais voudrait faire du plus beaucoup plus complexe) !
Il est temps que tu acquières au moins les notions les plus basiques.
Désolé, mais je ne peux transformer cette discussion en cours particulier d'enseignement des bases élémentaires.
Commenter la réponse de cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
c'est ça...

Private Sub cbb_matiere_Click()
On Error GoTo err
Call Connect
Sql = "Select * From articles_2 where T_Designation=" & "''" & cbb_matiere.Text & "'"
   'Sql = "Select * From articles_2 where T_Designation='" & cbb_matiere.Text & "'"
    Rs.Open Sql, Db, adOpenStatic, adLockPessimistic
    If Rs.RecordCount > 0 Then
        txt_prix1.Text = Rs.Fields("T_Prix") & " €"
        Text5.Text = Rs.Fields("T_Index") ' & " €"
    End If
    Call Deconnect
err:
MsgBox err.Number & " " & err.Description
End Sub
Commenter la réponse de cs_petchy
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Es-tu certain de ce que ce ne serait pas plutôt du genre :
abracadabra = "je n'en sais rien et m'en fiche"
abracadabra = abracadabra & vbCrLf & "je ne veux rien apprendre, mais juste copier/coller"
abracadabra = abracadabra & vbCrLf & "De toutes manières, ce qui compte n'est pas de comprendre ce que j'écris, mais que j'obtienne ce que je veux"
abracadabra = abracadabra & vbCrLf & "Je trouverai toujours bien un ""complice"" sur un forum qui le fera à ma place et " & _
", ce faisant, m'encouragera à continuer ainsi. Et voilà tout !"
MsgBox abracadabra & vbCrLf & "Amen"
Bonne chance, mais je n'ai pas la force de t'aider;
Commenter la réponse de ucfoutu
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
déjà ,je jamais eu la prétention d'être un développeur et si ont vient sur des forums c'est justement pour être aidé,
mais bon, Monsieur le magicien est plus malin que tous le monde car tu doit être un développeur.

abracadabra : au revoir
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bien...
Je te fais cependant observer :
- que tu es ici sur un forum d'échanges de développeurs, ce que tu es donc censé être, même si débutant.
- que l'aide n'est pas l'enseignement des bases
- que ta difficulté était celle de la construction de la chaîne de ta requête, lorsque l'un des critères comportait le signe apostrophe ===>> que la réponse t'a été donnée et qu'elle est exacte.
Voilà voilà ...
Commenter la réponse de cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
voila c'est bon

 Sql = "Select * From articles_2 where T_Designation='" & Replace(cbb_matiere.Text, "'", "''") & "'"
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
C'est encore une plaisanterie ?
1) tu dis devoir chercher l'injection, et tu finis par rechercher l"injection !
Voilà ta requête affichée par msgbox avec ton code !
Select * From articles_2 where T_Designation='l''injection'

et voilà ce que te donnait, par contre, mon code plus haut :
Select * From articles_2 where T_Designation = ''l'injection''
ce qui est correct.
Commenter la réponse de cs_petchy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.