Utilizzo funzione IIF in un campo query e sefalso = nessun filtro

Anonimo
2014-04-23T15:42:28+00:00

Salve,

ho necessità di specificare come criterio di una query un valore presente in una casella combinata di una maschera, oppure se quella casella è vuota applicare l'equivalente di like "*" (nessun filtro).

Ho provato con una formula come segue

IIf([Forms]![Maschera_filtri]![CasellaCombinata0] Is Not Null;[Forms]![Maschera_filtri]![CasellaCombinata0];Like "*")

oppure

IIf([Forms]![Maschera_filtri]![CasellaCombinata0] Is Not Null;[Forms]![Maschera_filtri]![CasellaCombinata0];" Like "*"")

Ma nel caso lasci vuota la casella combinata 0 la query non mi tira fuori nessun risultato.

se invece provo con un

IIf([Forms]![Maschera_filtri]![CasellaCombinata0] Is Not Null;[Forms]![Maschera_filtri]![CasellaCombinata0];[Cosa devo mettere?])

giustamente mi viene posta la domanda, se inserisco un valore valido mi tira fuori i dati corretti, ma se metto un Like  "*" anche quì nessun risultato!

Spero proprio che possiate aiutarmi.

Grazie in anticipo

Salvatore.

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
2014-04-23T16:27:39+00:00

Ciao Salvatore,

ho letto un po' di corsa ma prova con

Like Nz([Forms]![Maschera_filtri]![CasellaCombinata0] , "*")

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2014-04-23T19:27:01+00:00

Ciao SalvatoreValenza,

al posto di usare la iif potresti usare l'operatore booleano OR, ovvero:

[Forms]![Maschera_filtri]![CasellaCombinata0]  OR [Forms]![Maschera_filtri]![CasellaCombinata0]  Is Null

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-04-28T09:41:39+00:00

    Salve, ho un altro problema abbastanza simile ma che non riesco a risolvere con le soluzioni sopra:

    ho una serie di campi riportanti delle località per le quali un record è applicabile.

    Ogni campo, purtroppo, anzichè essere nel formato si/no è nel formato testo e quando applicabile è riportata una "X".

    In una maschera dalla quale scegliere i filtri, io ho inserito tante caselle di controllo quante sono le località.

    La difficoltà che ho è nel trasferire la scelta nella query qualora la casella di controllo non sia selezionanta.

    ho provato con la formula che segue:

    Like IIf([Forms]![Maschera_filtri]![Controllo_CC]="-1";"X";" ") nessu nrecord selezionato

    Like IIf([Forms]![Maschera_filtri]![Controllo_CC]="-1";"X"; "*") mi tira dentro solo quelle che hanno qualcosa

    mi servirebba qualcosa nell "parte falsa" per dire di tirarmi dentro tutto, sia le celle vuote che quelle con le X.

    La slouzione dell'OR non riesco ad applicarla in questo caso perchè devo tradurre il "-1" della casella di controllo in "X" come criterio.

    Avete qualche soluzione posto che non posso modificare l'origine dei dati?

    Grazie mille.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-04-24T11:28:03+00:00

    Grazie mille per le pronte e risolutive risposte!

    Entrambe le soluzioni funzionano perfettamente!

    Grazie mille ancora :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-04-23T18:24:50+00:00

    Grazie mille per la risposta.

    Susa la mia ignoranza, ma per cosa sta "Nz"?

    Per il resto della formula IIf?

    LA formula finale dovrebbe essere: 

    Like If([Form s]![Maschera_filtri]![CasellaCombinata0] Is Not Null;[Forms]![Maschera_filtri]![CasellaCombinata0]; "*")

    Ho paura che quell'operatore like all'inizio mi tiri dentro anche valori simili a quelli selezionati nella casella combinata quando questa non è nulla!

    Comunque domani proverò e farò sapere!

    La risposta è stata utile?

    0 commenti Nessun commento