Problème de requête SQL dans un prog. en VB - VB/VBA/VBS - Programmation
Marsh Posté le 03-12-2003 à 18:31:52
Je suppose que tu fais une requête vers Access, c'est typique de cet environnement (les [] ont d'ailleurs trahi Access). Tu remarqueras que dans la requête définitive, les valeurs de type chaîne sont encadrées de simples guillemets. Mais que se passera-t-il si une des chaînes en question contient elle-même un guillemet? Ca plantera la requête, donc on les redouble. On appelle cette technique échapper une chaîne (escape a string en anglais).
En MySQL par exemple, c'est le caractère slash remplit ce rôle.
Marsh Posté le 03-12-2003 à 17:41:49
Bonjour,
Je suis un autodidacte dans la programmation. Après un an de galère seul, je me suis décidé à prendre quelque heures de cours pour l' accés d' une base de donnée avec VB6 (très chère soit dit en passant...).
Nous avons créer un programme et je ne comprends pas une requête.
La voici:
Private Sub Command1_Click()
If Trim(Text1.Text) <> "" And Trim(Text2.Text) <> "" Then
Cxn.Execute ("insert into codeinami ([N°INAMI], intitule) values ('" & Replace(UCase(Trim(Text2.Text)), "'", "''" ) & "','" & Replace(UCase(Trim(Text1.Text)), "'", "''" ) & "')" )
MsgBox ("donnée ajoutée!" )
List1.Clear
Text2.Text = ""
Text1.Text = ""
IniList
Else
MsgBox ("Aucun texte n'a été encodé" )
End If
Mon problème se situe à ce niveau: ('" & Replace(UCase(Trim(Text2.Text)), "'", "''" ) & "','" & Replace(UCase(Trim(Text1.Text)), "'", "''" ) & "')" )
Pourquoi toutes ces apostrophes et ces guillemets??? Pourriez vous éclairer ma lanterne même sur une simplification de cette requête. Je ne comprends pas l' utilisation de l' esperluette "&". Je cherche juste à comprendre le fonctionnement et la raison de leur utilisation afin de pouvoir appliquer cela dans d' autres programmes sans devoir bêtement faire des copiers/coller.
Merci d' avance pour la réponse.
Orthodocs
End Sub