Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FILTRO MULTIPLO (CODICE VBA??)

794 views
Skip to first unread message

sani...@gmail.com

unread,
May 16, 2014, 2:06:49 AM5/16/14
to
Ciao ragazzi, è da un paio di giorni che cerco una soluzione al mio problema senza successo, spero possiate darmi una mano.


In pratica ho una maschera basata su una tabella. La visualizzazione della maschera è di tipo continua. Ho inserito 5 caselle di testo (non associati), che verranno utilizzati dall'utente per definire i criteri di ricerca.


Ora, se tutti i campi sono compilati la ricerca va a buon fine. Se uno dei campi non è compilato, mi da (errore di run time 3075 - errore di sintassi operatore mancante nell'espressione della query).


Ho utilizzato questo codice per filtrare la maschera.

Me.Filter = "ID_CAT=" & Nz(Me!Testo31, "*") & " AND " & "ID_COD=" & Nz(Me!Testo33, "*") & " AND " & "ID_REP=" _
& Nz(Me!Testo34, "*") & " AND " & "DAT_C >=" & " # AND " & Nz(Me!Testo35!, "*") & "#" & " AND " & "DAT_C <=" _
& " # AND " & Nz(Me!Testo37!, "*") & "#"
Me.FilterOn = True


a me occorre che quando una casella di testo (utilizzata come criterio per la ricerca) rimane vuota venga interpretata come "non fare distinzioni" trova tutto, ovvero il classico *.* per la ricerca dei file in Xp

grazie per il tempo che mi concederete!

sani...@gmail.com

unread,
May 16, 2014, 3:37:55 AM5/16/14
to
Scusate avevo copiato male il codice. Quello che segue è il codice che ho realmente usato in vba:

Me.Filter = "ID_CAT=" & Nz(Me!Testo31, "*") & " AND " & "ID_COD=" & Nz(Me!Testo33, "*") & " AND " & "ID_REP=" _
& Nz(Me!Testo34, "*") & " AND " & "DAT_C >=" & " #" & Nz(Me!Testo35, "*") & "#" & " AND " & "DAT_C <=" _
& "#" & Nz(Me!Testo37, "*") & "#"
Me.FilterOn = True

Karl Donaubauer

unread,
May 16, 2014, 7:20:38 AM5/16/14
to
sani...@gmail.com wrote:
> Scusate avevo copiato male il codice. Quello che segue � il codice
> che ho realmente usato in vba:
>
> Me.Filter = "ID_CAT=" & Nz(Me!Testo31, "*") & " AND " & "ID_COD=" &
> Nz(Me!Testo33, "*") & " AND " & "ID_REP=" _
> & Nz(Me!Testo34, "*") & " AND " & "DAT_C >=" & " #" & Nz(Me!Testo35,
> "*") & "#" & " AND " & "DAT_C <=" _
> & "#" & Nz(Me!Testo37, "*") & "#"
> Me.FilterOn = True

p.e.

Dim strFlt As String
strFlt = "1=1"

If Not IsNull(Me!Testo31) Then _
strFlt = strFlt & " AND " & "ID_CAT=" & Me!Testo31

If Not IsNull(Me!Testo33) Then _
strFlt = strFlt & " AND " & "ID_COD=" & Me!Testo33

If Not IsNull(Me!Testo34) Then _
strFlt = strFlt & " AND " & "ID_REP=" & Me!Testo34

If Not IsNull(Me!Testo35) Then _
strFlt = strFlt & " AND " & "DAT_C >=#" & Me!Testo35 & "#"

If Not IsNull(Me!Testo37) Then _
strFlt = strFlt & " AND " & "DAT_C <=#" & Me!Testo37 & "#"

Me.Filter = strFlt
Me.FilterOn = True

Invece di TestoX usa nomi parlanti come "txtFltIDCat" ecc.

--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it


car...@gmail.com

unread,
May 16, 2014, 11:05:24 AM5/16/14
to
Grazie Karl Donaubauer!!!
Il codice è perfetto per quello che era il mio scopo!
E poi già compilato!!
Ti sono riconoscente!
0 new messages