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-18T15:52:54+00:00

    Comunque non rompi :-)

    La stringa deve essere racchiusa tra apici o doppi apici, quindi

    'valoredelcampo'

    oppure

    " f_nome like '*" & campostringa & "*' and nome_campo = " & camponumero

    "------------------"                                "-----------------------------"

    Riguardo all'errore il campo flt_trim è di tipo numerico (camponumero)?

    Se è stringa lo devi trattare come campostringa e racchiuderlo tra virgolette!

    " f_nome like '*" & campostringa1 & "*' and nome_campo = '" & campostringa2 & "'"

    Quando ti dà l'errore vai in debug e posizionati sui singoli campi che compongono la istruzione ne vedrai il contenuto. Se conosci l'utilizzo della finestra immediata, copia l'intera riga dell'istruzione nella finestra immediata anteponendo un punto interrogativo e uno spazio quindi dai un invio. Puoi provare a modificare la riga fino ad ottenere un risultato significativo.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-09-18T15:38:34+00:00

    questo errore che ho messo sopra , se popolo entrambe le combo per i filtri , se invece popolo solo la prima (flt_fornitore) allora mi da errore sintassi

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-09-18T15:36:39+00:00

    tipi dati non corrispondenti

    potresti spiegarmi la sintassi almeno in futuro non rompo più per queste cose :)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-09-18T14:25:44+00:00

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

    prova con

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

    La risposta è stata utile?

    0 commenti Nessun commento