Funzione IIF nei criteri di una Query

giovedì 13 luglio 2006 - 10.48

Fuzuka Profilo | Newbie

Ciao a tutti,
Ho un problema abbastanza fastidioso con i criteri di una Query di Access.
Ho un capo [Valore] che contiene valori numerici, ho creato una sottomaschera senza nessun collegamento. Nella maschera principale ho messo una casella si/no che ho denominato [Tutti] e un campo [Selettore].
Ora nei criteri della query ho messo la funzione IIF(Forms![Conto]![Tutti] = sì;>0;Forms![Conto]![Selettore]) la parte true non funziona ovvero non mi filtra tutti i valori che richiedo, la parte false invece funziona regolarmente.
Ora volevo chiedere se era possibile con la funzione IIF mettere nella parte true qualcosa che mi mostri tutti i records.
Spero di essere stato abbastanza chiaro nell'esporre il problema.
Ringrazio anticipatamente chiunque risponda.

Fuzuka

lbenaglia Profilo | Guru

>Ora nei criteri della query ho messo la funzione IIF(Forms![Conto]![Tutti]
>= sì;>0;Forms![Conto]![Selettore]) la parte true non funziona
>ovvero non mi filtra tutti i valori che richiedo, la parte false
>invece funziona regolarmente.

Ciao Fuzuka,

la funzione IIF si aspetta come primo parametro una condizione, mentre gli altri 2 sono valori.
Tu invece hai specificato una condizione come secondo parametro (true part) ed ovviamente non può funzionare.

>Ora volevo chiedere se era possibile con la funzione IIF mettere
>nella parte true qualcosa che mi mostri tutti i records.
Boh, bisognerebbe capire meglio il problema.

>Ringrazio anticipatamente chiunque risponda.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Fuzuka Profilo | Newbie

Ciao, ti ringrazio per la risposta.
Credo di aver capito, il problema è che vorrei che la parte true non mi incidesse sulla query, in pratica che mostrasse tutti i records della query e la parte false che mi ricercasse tutti gli importi uguali alla variabile del campo Forms![Conto]![Selettore]
E' possibile o mi devo rassegnare a usare trova e il filtro?
Grazie
Fuzuka

lbenaglia Profilo | Guru

>Credo di aver capito, il problema è che vorrei che la parte true
>non mi incidesse sulla query, in pratica che mostrasse tutti
>i records della query e la parte false che mi ricercasse tutti
>gli importi uguali alla variabile del campo Forms![Conto]![Selettore]
>E' possibile o mi devo rassegnare a usare trova e il filtro?

Io non ho ancora capito qual è la query dato che non l'hai postata....

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Fuzuka Profilo | Newbie

Ciao la query in sostanza è questa:
[IDMov],[Valuta],[Segno]
Nei criteri di selezione della query ho messo:
IIF(Forms![Conto]![Tutti]=sì;>0;Forms![Conto]![Selettore])
Dove Tutti è una casella di scelta sì/no e selettore è un campo dove poter far riferimento all'importo di valuta uguale nel caso la casella [Tutti]=no.
Ora la query mi restituisce già tutti i valori che cerco ma vorrei introdurre un filtro per importo. La parte False funziona già invece la parte true dovrebbe lasciarmi la query così com'è. Dimenticavo che la query la uso in una sottomaschera in visualizzazione foglio dati.
Se non sono stato chiaro, dimmi come posso esserlo di più.
Grazie ancora.
Fuzuka

lbenaglia Profilo | Guru

>Se non sono stato chiaro, dimmi come posso esserlo di più.
Posta la query SQL.

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Fuzuka Profilo | Newbie

SELECT Movimenti.IDMov, Movimenti.Movimento, Movimenti.Segno
FROM Movimenti
WHERE (((Movimenti.Movimento)=IIf([Forms]![Conto]![Tutti]=Yes,(Movimenti.Movimento)>0,[Forms]![Conto]![Selezione])));

lbenaglia Profilo | Guru

>SELECT Movimenti.IDMov, Movimenti.Movimento, Movimenti.Segno
>FROM Movimenti
>WHERE (((Movimenti.Movimento)=IIf([Forms]![Conto]![Tutti]=Yes,(Movimenti.Movimento)>0,[Forms]![Conto]![Selezione])));

Prova a modificare la query nel seguente modo:

SELECT IDMov, Movimento, Segno FROM Movimenti WHERE Movimento LIKE IIf([Forms]![Conto]![Tutti]=Yes, '*', [Forms]![Conto]![Selezione]);

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Fuzuka Profilo | Newbie

Ho provato ed ottengo proprio quello che volevo.
Ti ringrazio infinitamente.
Fuzuka
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5