questa e' l'espressione SQL che Eseguo:
Set RecTabella = DbData.OpenRecordset("Select * from Clienti " _
& "Where (((Clienti.cognome) Like '"
& TxtCognome & "*" & "')) " _
& "Order By Clienti.cognome")
Vi Ringrazio in anticipo dell'aiuto ricevuto
Capita più spesso di quanto non si creda. L'espressione SQL dell'esempio che
hai postato risulta essere:
"Select * from Clienti Where (((Clienti.cognome) Like 'DELL'AMICO*'))
Order By Clienti.cognome"
Io mi sono scritto una funzione che sostituisce l'apice singolo con il
carattere jolly (valido per tutti i DB)
Function getStringOk(MyString As String) As String
Dim iPos As Integer
iPos = InStr(MyString, "'")
While iPos > 0
Mid(MyString, iPos, 1) = "?"
iPos = InStr(MyString, "'")
Wend
getStrinOk = MyString
End Function
Potresti usare la funzione in questo modo:
Set RecTabella = DbData.OpenRecordset("Select * from Clienti " _
& "Where (((Clienti.cognome) Like '"
& getStringOk(TxtCognome.Text) & "*" & "')) " _
& "Order By Clienti.cognome")
L'espressione SQL in questo caso diverrebbe:
"Select * from Clienti Where (((Clienti.cognome) Like 'DELL?AMICO*'))
Order By Clienti.cognome"
perfettamente valida.
Una sola aggiunta, relativamente all'uso dell'operatore LIKE.
Attenzione all'asterisco che deve essere sostituito con il simbolo
percentuale anche per i database Access se connessi tramite ADO.
Ciao, Andrea d'Errico.
>tabella di access 7.0, ma se l'utente mi digita una stringa del genere
>"DELL'AMICO" (una parola con l'apostrofo),
Innanzitutti questo: devi raddoppiare l'apice, visto che per SQL il
simbolo _'_ delimita una stringa.
Raddoppiandolo lo "trasforma" in un'apice normale ^__^
>nell'espressione query (((Clienti.cognome) like 'DELL'AMICO*')) .......
Secondo (anche se non sono certo al 100%): usi l'asterisco come
carattere Jolly, ma se lanci la query da Visual Basic devi sostituirla
con un _%_ che è il jolly di SQL...
--
Giovanni "Gyo" Perdicaro
E-Mail: gperd...@sicilyonline.it