Newsgroup: it.comp.appl.access
Titolo: ri-proposta query...(tutti, iif)

ri-posto il problema a distanza di qche giorno: penso che possa comunque 
essere utile a molti...
Il problema:
ho una maschera FiltriMultipli,  nella quale ci sono diverse 
CaselleCombinate per fare in modo che
l'utente possa settare il filtro come più gli aggrada.
Mi spiego: nella MascheraFiltriMultipli c'è:
- una CasellaCombinata1 (quella dei dipendenti) in cui uno dovrebbe
scegliere di vedere quelli che hanno dipendenti (numero >0), oppure quelli
che non li hanno (numero = 0) oppure tutti (che abbiano dipendenti o meno)
- una CasellaCombinata2 (impresa famigliare) in cui uno dovrebbe scegliere
di vedere quelli che hanno impresa famigliare(vero), oppure quelli che non
l'hanno (falso) oppure tutti (che abbiano impresa famigliare o meno)
- una CasellaCombinata3 (figli) in cui uno dovrebbe scegliere di vedere
quelli che hanno diritto a riduzioni (vero), oppure quelli che non l'hanno
(falso) oppure tutti (che abbiano diritto o meno)
(in questo modo uno può settare il filtro in questo modo, per esempio:
"quelli che non hanno figli, hanno impresa famigliare e hanno dipendenti"
piuttosto che "quelli che non hanno dipendenti, non hanno impresa
famigliare, non importa se con figli o meno" e via di questo passo).
Il tutto, prima dell'inserimento della casella per i dipendenti (espressi in
numero) tutto era svolto da un'unica query che riportava, nei diversi
criteri:
Like 
IIf([Forms]![Maschera1]![CasellaCombinataX]="TUTTI";"*";IIf([Forms]![Maschera1]![CasellaCombinataX]="SI";Vero;Falso))
Volevo adattare la query in questo senso:
La combobox1 (qulle dei dipendenti) contiene solo TUTTI, NO, SI.
Se scelgo TUTTI, mi dovrebbe mostrare tutti i clienti che hanno o non hanno
dipendenti
Se scelgo NO, mi dovrebbe mostrare tutti i clienti che hanno  0 dipendenti
Se scelgo SI, mi dovrebbe mostrare tutti i clienti che hanno >0 dipendenti
(ovviamente tenendo conto dei  settaggi delle altre combobox)
Si intende che la query è basata su una Tabella1 che ha un campo Dipendenti,
il campo è Byte.
Chiedo ancora venia e aiuto.
Saluti
Guido
-- 
in moto:
sfortunà tanti
fortunà pochi
bravi gnanca uno 

 ha scritto nel messaggio
news:kbnde.1318903$35.49...@news4.tin.it...

Se la tabella che contiene i dati su chiama Tabella!.
Se il campo Dipendenti è di tipo Numerico e contiene il numero dipendenti
dell'azienda.
Se la maschera non associata si chiama Maschera1 e contiene una casella
combinata chiamata CasellaCombinataX.
Se la casella combinata ha una sola colonna che può contenere i valori
"TUTTI", "SI", "NO".
Nella query cherati un campo calcolato così fatto:
IIf([Forms]![Maschera1]![CasellaCombinataX]="TUTTI";1;IIf([Forms]![Maschera1
]![CasellaCombinataX]="SI" And
[Dipendenti]<>0;1;IIf([Forms]![Maschera1]![CasellaCombinataX]="No" And
[Dipendenti]=0;1;0)))
e nei critaeri di tale campo calcolato scrivi 1.
Insomma la query dovrà avere il seguente codice SQL:
SELECT Tabella1.*
FROM Tabella1
WHERE
(((IIf([Forms]![Maschera1]![CasellaCombinataX]="TUTTI",1,IIf([Forms]![Masche
ra1]![CasellaCombinataX]="SI" And
[Dipendenti]<>0,1,IIf([Forms]![Maschera1]![CasellaCombinataX]="NO" And
[Dipendenti]=0,1,0))))=1));
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------