Bonjour,

Je suis face à un problème que je peux facilement contourné mais dont j'aimerais comprendre le pourquoi :
explication du problème : afin de protéger mes requetes à ma base de donnée, je prend soin de remplacer les ' par '' dans les variable de type string pour cela je crée cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Public Sub protectStringQuery(ByRef str As String)
    str = Replace(str, "'", "''")
End Sub
Donc selon moi puisque je met byref, lorsque j'appel cette fonction comme cela par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
dim mdp
mdp = txtMdp.text
protectStringQuery(mdp)
ma variable devrait mdp devrait voir tout ses ' remplacer par des ''. et bien ce n'est pas le cas alors je ne comprend pas ce qu'il se passe.

J'ai changer cette procedure par une fonction par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Public function protectStringQuery(ByRef str As String)
    protectStringQuery = Replace(str, "'", "''")
End Function
mais bon cela oblige à écrire mdp = protectStringQuery(mdp) et puis j'aimerais bien comprendre pourquoi cela ne marche pas alors que le passage par référence fonctionne bien dans d'autre fonctions, procedures

Merci pour votre aide

Cordialement

Pierre