Applicare filtri multipli su maschera

Anonimo
2012-09-17T08:41:13+00:00

Salve , avrei la necessità di applicare un filtro multiplo su una form. Nel dettaglio dovrei filtrare prima per "fornitore" e poi per "trimestre". Avevo pensato di creare una combobox per "fornitore" (ma va bene anche una textbox) ed una textbox per "trimestre" e appunto filtrare in base ai valori presenti al loro interno.

Onestamente non so da dove iniziare dato che solitamente questi dati li filtro già dalla query ottenendo quello che mi interessa. Mi piacerebbe però apprendere come si fa a filtrare per cui accetto qualsiasi consiglio :)

Grazie anticipatamente.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2012-09-19T09:35:59+00:00

Proviamo a fare qualche variazione.

Private Sub Comando39_Click()

  Dim myfilter As String

    If Not IsNull(flt_fornitore) Then

    myfilter = " f_nome like '*" & flt_fornitore & "*'"

    Else

    End If

    If Not IsNull(flt_trim) Then

       if len(myfilter) > 0 then

          myfilter = myfilter & " AND trimestre = " & flt_trim

       else

          myfilter = " trimestre = " & flt_trim

       endif

    Else

End If

     DoCmd.SetFilter , myfilter

End Sub

Se non sbaglio già dalla 2007 è stata introdotta la SetFiletr al posto di Me.Filter e Me.FilterOn ( proviamoci, io ho solo la 2010).

Ciao Mimmo

La risposta è stata utile?

0 commenti Nessun commento

34 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-09-18T10:32:49+00:00

    Esatto. :-)

    Buon pranzo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-09-18T10:25:20+00:00

    Grazie Mimmo , appena arrivo a casa per la pausa pranzo provo a modificare il mio codice che avevo migliorato inserendo anche i like *.

    Se per caso volessi inserire un terzo filtro dovrei andare avanti di AND , esatto?

    A oggi pomeriggio e grazie :)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-09-18T07:01:57+00:00

    Ciao,

    myfilter= " f_nome = '" & flt_fornitore & "' And f_trimestre = " & flt_trimestre

    ipotizzando che il campo f_trimestre sia un numerico altrimenti 

    myfilter= " f_nome = '" & flt_fornitore & "' And f_trimestre = '" & flt_trimestre & "'"

    Rivedendo la mia prima risposta avresti:

     myfilter= ""

        If Not IsNull(flt_fornitore ) Then

           myfilter= " f_nome = '" & flt_fornitore & "'

        End If

        If Not IsNull( flt_trimestre ) Then

           If Len(myfilter) = 0 Then

              myfilter= "f_trimestre = '" & flt_trimestre & "'" 

          Else

              myfilter= myfilter & " And f_trimestre = '" & flt_trimestre & "'" 

           End If

        End If

        Me.Filter = myfilter

        Me.FilterOn = True

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-09-17T17:01:08+00:00

    ehm... meglio che non ti dico il perchè non andava ... :D praticamente avevo cancellato [routine evento] dall'evento on click del pulsante ..

    ora funziona :)

    Ma per far applicare 2 filtri ossia prima un filtro e poi un secondo (aggiungendo un altro controllo) , la sintassi myfilter= " f_nome = '" & flt_fornitore & "'"  come cambia? devo inserire un "and? e specificare anche l'altro campo più relativo controllo?

    grazie intanto :)

    La risposta è stata utile?

    0 commenti Nessun commento