AppiceSQL




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):










( appicesql.html )- by Paolo Puglisi - Modifica del 17/12/2023