Dim StringaDaRicercare as String
StringaDaRicercare = Text1.Text Data1.RecordSource = "Select * from Dipendenti where _ Cognome = '" & StringaDaRicercare & "'" Data1.Refresh Function StringaPerQuery(stringa As String) As String Dim lun_str As Integer Dim k0 As Long Dim k1 As Integer Dim car As String Dim strbuff As String k0 = InStr(stringa, Chr$(39)) If k0 > 0 Then strbuff = Mid$(stringa, 1, k0 - 1) lun_str = Len(stringa) For k1 = k0 To lun_str car = Mid$(stringa, k1, 1) If car = Chr$(39) Then car = Chr$(39) & Chr$(39) strbuff = strbuff & car Next k1 End If StringaPerQuery = strbuff End Function 'Da richiamare come segue: Dim StringaDaRicercare as String StringaDaRicercare = StringaPerQuery (Text1.Text) 'chiama la funzione... Data1.RecordSource = "Select * from Dipendenti where _ Cognome = '" & StringaDaRicercare & "'" Data1.Refresh Supponiamo di avere un database contenente delle tabelle tra cui una chiamata DIPENDENTI contenente diversi campi. Uno di questi campi si chiama COGNOME, dove, naturalmente, sono memorizzati i cognomi dei dipendenti di una ditta X. Se eseguiamo una query (utilizzando un Data Control) utilizzando il seguente metodo...: e nel controllo Text1.Text inseriamo un cognome che ha nel suo contenuto degli apostrofi, ad esempio -D'Alessandro - , otterremo un errore, in quanto l'apostrofo presente tra la lettera D e la lettera A del cognome viene considerato come parte dell'istruzione della query, e non come elemento della stringa da ricercare. Per eseguire quindi correttamente la query, bisogna sostituire il singolo apostrofo in un consecuzione di due apostrofi. Quindi prima di passare una stringa ad una query, possiamo processarla con la seguente funzione, che scansiona la stringa passatagli come argomento ricercando in essa gli apostrofi, sostituendoli in tal caso con una consecuzione doppia di Chr$(39): |