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ù recente
  1. Anonimo
    2012-09-19T10:03:40+00:00

    ho modificato levando quell'istruzione ed aggiungendo

        Me.Filter = myfilter

        Me.FilterOn = True

    ora va se popolo il primo filtro ma se do il secondo mi da errore: tipi dati non corrispondenti

    eppure sono certo che si tratti di un campo numerico..

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-09-19T10:01:13+00:00

    No mi sa che non è supportata "errore di compilazione , impossibile trovare il metodo o il membro dei dati" e si posiziona su DoCmd.SetFilter

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-09-19T09:16:54+00:00

    Buongiorno a te :)

    scusa il ritardo ma ero preso dal lavoro.

    il codice in questione è questo :

    Private Sub Comando39_Click()

      Dim myfilter As String

        If Not IsNull(flt_fornitore) Then

        myfilter = " f_nome like '*" & flt_fornitore & "*' And trimestre = " & flt_trim

        Else

    End If

        Me.Filter = myfilter

        Me.FilterOn = True

    End Sub

    l'errore me lo segna su Me.FilterOn= True , ma suppongo che lo faccia perchè trova "tipi di dati non corrispondenti" e non un problema di sintassi.

    questo errore me lo da se popolo entrambi i filtri e se può servire mi mette sopra anche : Errore run-time '3464':

    tipi dati non corrispondenti nell'espressione criterio.

    Se invece popolo solo il primo filtro flt_fornitore, mi da questo errore:

    Errore di run-time '3075':

    Errore di sintassi (operatore mancante) nell'espressione della query ' f_nome like '*cisa ceramiche*' And trimestre = '. (qui suppongo che il problema è che non avendo valore flt_trim, dovrei fare in modo di eliminare And trimestre.

    Se invece popolo solo flt_trim ed applico il filtro , non da errore ma il filtro non viene applicato..

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-09-19T07:19:00+00:00

    Buongiorno,

    ripartiamo dal tuo codice (puoi rimandarmi l'ultima versione)

    e dagli errori che ti da' nhelle diverse combinazioni (1 filtro, 2 filtri ....)

    perchè apparentemente il risultato è corretto:

    myfiltrer="f_nome like '*CISA CERAMICHE*' AND trimestre = 4"

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento