Filtro multiplo Like e Not Like su Access

di il
1 risposte

Filtro multiplo Like e Not Like su Access

Ciao, io dovrei fare 2 tipi di filtro su una maschera, uno che filtra in base a tutte le voci che ho digitato su 2 TextBox (fa 2 filtri CONTIENE in pratica) ma allo stesso tempo deve anche filtrare ESCLUDENDO in base a tutte le voci che ho digitato su altre 2 TextBox (fa 2 filtri NON CONTIENE).
Questo è il mio codice dove ho provato usando Like e Not Like :

Private Sub TrovaButton_Click()
Dim CaratteriDigitati1, CaratteriDigitati2, CaratteriDigitati3, CaratteriDigitati4 As String
   CaratteriDigitati1 = Nz(Me!Testo1.Value, "")
   CaratteriDigitati2 = Nz(Me!Testo2.Value, "")
   CaratteriDigitati3 = Nz(Me!Testo3.Value, "")
   CaratteriDigitati4 = Nz(Me!Testo4.Value, "")

   Form_RegistroCommesse.Filter = "[Descrizione] Like '*" & CaratteriDigitati1 & "*' AND [Descrizione] Like '*" & CaratteriDigitati2 & "*' AND [Descrizione] Not Like '*" & CaratteriDigitati3 & "*' AND [Descrizione] Not Like '*" & CaratteriDigitati4 & "*'"
   
Form_RegistroCommesse.FilterOn = True
   Form_RegistroCommesse.Requery
   DoCmd.Close acForm, "CercaVoci", acSaveYes
End Sub

Ma vedo che non funziona perchè non trova alcun valore corrispondente alla mia ricerca...cosa sbaglio???

1 Risposte

  • Re: Filtro multiplo Like e Not Like su Access

    Io non comprendo tanto il codice Visual Basic, ma mi viene in mente un'altra soluzione.
    La tua maschera poggia su una tabella X con almeno 4 campi: giusto?

    Crea una query di selezione dove, (importa la tabella ovviamente) in corrispondenza di Criterio dovrai scrivere così
    Campo1: Like "<stringa1>"
    Campo2: Like "<stringa2>"
    Campo3: Not Like "<stringa3>"
    Campo4: Not Like "<stringa4>"
    Salva la query

    Vuoi vedere il risultato direttamente nella query?
    Crea un pulsante sulla tua maschera che apra questa query.

    Oppure vuoi vedere nella maschera?
    Non saprei direttamente, ma volgarmente mi viene di pensare di creare un'altra maschera con gli stessi tuoi campi, ma che guarda la query. Poi di conseguenza, crea un pulsante che apre questa 2a maschera.

    P.S.: se il risultato della query non è quello che ti aspettavi, probabilmente immagino che dovresti spostare i 2 Not Like al rigo immediatamente al di sotto.
Devi accedere o registrarti per scrivere nel forum
1 risposte