Apostrophe dans combobox

Résolu
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 7 avril 2014 à 08:06
ucfoutu Messages postés 18038 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

14 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/04/2014 à 08:44
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 ?
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 08:43
merci ucfoutu pour ta réponse,mais j'ai toujours l'erreur de syntaxe

je développe en VB6
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2014 à 08:46
Quelle "erreur de syntaxe" ? et sur quelle ligne ?
Pour ton info, j'ai testé ma réponse.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2014 à 08:49
AH ;;; j'espère que tu as bien corrigé (faute de frappe) : cbb_matiere.txt par cbb_matiere.text Evident ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 08:54
oui j'avais corrigé

sinon l'erreur se situe sur cette ligne
Rs.Open Sql, Db, adOpenStatic, adLockPessimistic
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2014 à 08:57
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.
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 09:14
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=
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/04/2014 à 11:08
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
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 11:38
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2014 à 11:44
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 ...
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 11:54
désolé, je pensais que tu me parlais de l'erreur qui m'affichait.
comment ajoute t'on un msgbox sql ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2014 à 11:59
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.
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 12:22
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 avril 2014 à 12:57
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;
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 13:24
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/04/2014 à 14:52
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à ...
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
7 avril 2014 à 17:16
voila c'est bon

 Sql = "Select * From articles_2 where T_Designation='" & Replace(cbb_matiere.Text, "'", "''") & "'"
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/04/2014 à 18:15
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.
0
Rejoignez-nous