Applicare un filtro multiplo in Access tramite VBA

Spesso in Access è necessario applicare un filtro multiplo, avvalendosi magari del valore di alcuni campi presenti all’interno della nostra maschera. L’applicazione dei filtri purtroppo non è così agevole costruirla con gli strumenti standard di Access. Ecco perché ci viene in aiuto VBA.

Nell’esempio che vi riporto di seguito andiamo ad applicare un filtro multiplo, prelevando il valore da 3 caselle della maschera, in una sottomaschera.

Dim sRicerca As String

‘Resetto i filtri della sottomaschera inizialmente
Me.NomeSottomaschera.Form.FilterOn = False

‘Applicato il primo filtro sul campo DATA della sottomaschera prendendo il valore da CASELLA1 della maschera principale, in questo caso trattandosi di un campo data devo fare attenzione a come inserire la data (cioè tra #)

sRicerca = “DATA =#” & Format(CDate(Me.Casella1.Value), “mm/dd/yyyy”) & “#”

‘Adesso vado ad accordare ulteriori 2 filtri, sui campi REPARTO e SEDE della sottomaschera prendendo i valori da CASELLA2 e CASELLA3. Trattandosi di campi testo questa volta devo essere fra il singolo apice.

sRicerca = sRicerca & ” AND ” & “REPARTO = ‘” & Me.Casella2.Value & ” ‘ ”
sRicerca = sRicerca & ” AND ” & “FILIALE = ‘ ” & Me.Casella3.Value & ” ‘ “

‘Attivo il calcolo dei filtri
Me.NomeSottomaschera.FilterOn = True

In sintesi il trucco è costruirsi una stringa (nel nostro caso sRicerca) dove andare a costruirsi il codice con tutti i filtri da applicare. Alla fine si applicherà il filtro con l’opzione FilterOn = True.

Questa voce è stata pubblicata in Excel, Microsoft Office. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *