Filtro su maschera

di Anonimizzato27117 il
7 risposte
Salve a tutti!

Ho un piccolo problema con questo codice:
Private Sub Comando28_Click()
    With Form_Maschera1
        .Filter = "COGNOME Like '" & .txtCognomeRicerca & "*'"
        .FilterOn = True
        .Refresh
        .txtCognomeRicerca.SetFocus
    End With
End Sub
In parole povere mi filtra i record del campo COGNOME in base a quello che scrivo in txtCognomeRicerca.
Fin qui tutto bene ma se c'è un cognome che ha un apostrofo (ad esempio scrivo nella TextBox "D'AM") mi fa i capricci.

Ricevo il messaggio di errore:
Errore di run-time '3075':

Errore di sintassi (operatore mancante) nell'espressione della query 'COGNOME Like 'D'AM*"

Sono sicuro che l'apostrofo del cognome incasina la sintassi della Query quindi mi vien da pensare di fare un Replace, ovvero di sostituire l'apostrofo con altro, ma cosa?
Oppure c'è un altro modo?

Grazie a tutti per il supporto!!!!

7 Risposte

  • Grazie Marmauro
    Non lo avevo visto

    Alla prossima e grazie per il supporto
  • Di nulla, io solitamente la risolvo così:
    su afterupdate della casella di ricerca
    strRicerca= Me.ValoreInCasellaDiRicerca
    strFiltro = "([nome_tabella].[nome_campo] like " & Chr(34) & Chr(42) & strRicerca & Chr(42) & Chr(34) & ")" 
    Me.Form.Filter = strFiltro
    Me.Form.FilterOn = True
  • Grazie mille!
    Proverò
    Domanda:
    ma perché al posto di chr(34) e chr(42) non usare direttamente i doppi apici e l’asterisco?
  • kris9951 ha scritto:


    Grazie mille!
    Proverò
    Domanda:
    ma perché al posto di chr(34) e chr(42) non usare direttamente i doppi apici e l’asterisco?
    Si usa quello che si vuole sono 2 modi per ottenere lo stesso risultato, in realtà sono la stessa cosa...
    Io uso gli apicetti ed il replace funziona sempre anche questo.
  • Grazie mille ragazzi!
    Come sempre siete stati molto utili ed istruttivi

    Alla prossima!!
Devi accedere o registrarti per scrivere nel forum
7 risposte