In SQL le stringhe sono delimitate da due apostrofi ( ‘ ), quindi se la stringa stessa ne contiene uno ADO non è più in grado di interpretare correttamente la query. Per risolvere il problema è sufficiente raddoppiare gli apici contenuti nella stringa, ad esempio utilizzando la funzione Replace:
RS.Open “SELECT * FROM Rubrica WHERE Via = ‘” & Replace(“Sant’Andrea”, “‘”, “””) & “‘;”, DB
Per non dover riscrivere ogni volta la funzione Replace con tutti i suoi argomenti, è possibile utilizzare una semplicissima funzione che raddoppia gli apici:
Public Function StringaControllata(str) As String
StringaControllata = Replace(str, “‘”, “””)
End Function
Così facendo l’istruzione precedente diventa:
RS.Open “SELECT * FROM Rubrica WHERE Via = ‘” & StringaControllata(“Sant’Andrea”) & “‘;”, DB