Newsgroup: it.comp.appl.access
Titolo: Filtrare mediante una maschera

Salve a tutti.
Ho creato una maschera per filtrare i dati di una Tabella Archivio.
A tale scopo ho posizionato tante ComboBox sull'area intestazione della
maschera per quanti sono i campi della tabella.
Il filtro lo applico mediante una Query dove nella riga criteri relativa ad
ogni campo ho messo la seguente condizione se voglio trovare la
corrispondenza esatta:
Like nz([Forms]![Maschera]![ComboBox1]; "*")
e la seguente condizione se invece voglio trovare una parte del testo
contenuto nel campo:
Like nz("*" & [Forms]![Maschera]![ComboBox2] & "*").
Finché tutti i campi contengono un valore il record viene trovato
regolarmente anche applicando una sola condizione.
Ma nella mia applicazione capita di frequente che alcuni campi debbano
restare vuoti, bč questi vengono totalmente ignorati dalla query.
Mi potreste per favore spiegare dove ho sbagliato. Scusate la probabile
ingenuitą della domanda ma sono ancora alle prime armi.
Grazie, Rosario.


Prova a scrivere nei criteri:
Like "*" & nz([Forms]![Maschera]![ComboBox1]; "*") & "*"
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

>R.T.I. Alessandria" ha scritto

Prova con:
Like nz("*" & [Forms]![Maschera]![ComboBox2] & "*") or
[Forms]![Maschera]![ComboBox2] Is Null


Ho provato la tua soluzione, ma purtroppo la query si comporta allo stesso
modo di quella che avevo fatto procedentemente.
Il fatto č che continua ad ignorare i records che hanno qualche campo vuoto.
Hai qualche altra idea per favore?
Grazie, Rosario.


La tua  soluzione funziona solo che una volta salvata la nuova query, non
posso più accedervi in visualizzazione struttura in quanto Access si blocca.
Non riesco a capire il motivo.
Ciao, Rosario.


    Ma la tua Query risiede nella maschera p è una query esterna, caricata
nella maschera in questione? Solitamente le query che risiedono nelle
maschere non possono essere più lunghe di un certo numero di caratteri. La
funzione che ti ho suggerito tende a far aumentare di molto la dimensione
della query per via di una riorganizzazione di forma che il generatore
applica alla funzione stessa.
    Se quindi la tua query è inserita nella maschera, prova a salvarla e a
caricarla quindi dall'esterno.
Prova anche a togliere NZ (non ti serve) riscrivendo la funzione come segue:
Like "*" & [Forms]![Maschera]![ComboBox2] & "*" or
[Forms]![Maschera]![ComboBox2] Is Null
e poi dimmi cosa succede.
Ciao by Mercurio


Scusami, ma avevo letto solo metà del tuo messaggio. :o)
Normalmente in questi casi mi definisco un campo calcolato nella query,
sostituendo il valore Null e poi scrivo i criteri per il campo calcolato
anziché per il campo originale.
Ovvero, se il campo della query su cui su cui effettuare la selezione si
chiama Pippo, nel campo calcolato scrivo:
PippoBis: Nz([Pippo])
e nei criteri di PippoBis scrivo ciò che ti ho indicato nel mio messaggio
precedente; naturalmente non scrivo alcunché nei criteri del campo Pippo.


 wrote in message
0r%37.7626$m06.2...@news.infostrada.it...

Scusami ma non so che cosa intendi per campo calcolato, ho iniziato da poco
a costruire applicazioni in Access e quasi totalmente con l'aiuto del
newsgroup.
Potresti spiegarmi in termini un po più da dilettante per favore?
Grazie e ciao da Rosario.


La query, salvato col nome "QueryRicerca" la carico mediante una routine
sull'evento click di un pulsante "Applica filtro" con il comando:
DoCmd.ApplyFilter "QueryRicerca"; scusami non so cosa si intende per query
residente nella maschera.
Ciao, Rosario

 ha scritto nel messaggio
news:ax247.8636$m06.3...@news.infostrada.it...

In una query, oltre ai campi che fanno riferimento ai campi dell'oggetto su
cui la query è basata (tabella/e o altra/e query/ies), puoi avere anche
campi il cui valore viene determinato da una elaborazione e che comunemente
si chiamano "campi calcolati".
Nel tuo caso, devi aprire la griglia di struttura della tua query e nella
riga Campo: di una colonna vuota devi scrivere:
PippoBis: Nz([Pippo])
Così facendo hai inserito nella tua query un "campo calcolato" chiamato
PippoBis e che assume il valore di Pippo se questo è significativo, oppure
assume il valore zero se Pippo ha il valore Null.
Nella riga Criteri: di questa nuova colonna scrivi:


 wrote in message
2me47.10400$m06.4...@news.infostrada.it...

Finalmente sono riuscito ad applicare il tuo consiglio e funziona
perfettamente.
Come al solito un sentito grazie.
Ciao, Rosario.