Newsgroup: it.comp.appl.access
Titolo: Query con funzione IIF nei cirteri basata su un gruppo di opzioni su  campo Si/no

Ciao a tutti. Mi sembra di impazzire. Ho creato una query su una
tabella. La query deve restituirmi l'elenco degli iscritti
all'associazione in base alla selezione su un gruppo di opzioni a 3
opzioni: Alpini=1, Simpatizzanti=2, Tutti=3. Bene. Sembrava una
fesseria invece non riesco a capire l'errore. Ho creato la query nel
seguente modo:
SELECT tblAlpini.Cognome, tblAlpini.Nome, tblAlpini.Classe,
tblAlpini.Cessato, tblAlpini.Amico
FROM tblAlpini
WHERE (((tblAlpini.Cessato)=False) And ((tblAlpini.Amico)=IIf(Forms!
frmStampaElenco!Cornice2=3,'*',IIf(Forms!frmStampaElenco!
Cornice2=1,False,True))));
ma così ovviamente dà errore. Allora ho provato così:
SELECT tblAlpini.Cognome, tblAlpini.Nome, tblAlpini.Classe,
tblAlpini.Cessato, tblAlpini.Amico
FROM tblAlpini
WHERE (((tblAlpini.Cessato)=False) AND ((tblAlpini.Amico)=IIf([Forms]!
[frmStampaElenco]![Cornice2]=3,(tblAlpini.Amico)=True Or
(tblAlpini.Amico)=False,IIf([Forms]![frmStampaElenco]![Cornice2]
=1,False,True))));
Ma così mi restituisce solo quelli selezionati, quindi quelli
rispondenti a vero.
Come posso fare?
Grazie
Stefano

 Stefano
Se "Amico" � numerico prova cos�:
SELECT tblAlpini.Cognome, tblAlpini.Nome, tblAlpini.Classe,
tblAlpini.Cessato, tblAlpini.Amico
FROM tblAlpini
WHERE (((tblAlpini.Cessato)=False) AND ((tblAlpini.Amico) Like
IIf([Forms]![frmStampaElenco]![Cornice2]=3,"*",[Forms]![frmStampaElenco]![Cornice2])));
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
No, "Amico" è un campo Sì/No.

 No, "Amico" � un campo S�/No.
Allora qual'� il campo della tua query che gestisce "Alpini" e
"Simpatizzanti"?
In pratica dovresti avere un campo con valori 1 e 2.
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
Il campo che gestisce Alpini e Simpatizzanti è "Amico". Se il campo è
False allora si tratta di alpini; se il campo è True allora si tratta
di simpatizzanti.
Quindi il se gruppo di opzioni è = a 1 la query deve restituire tutti
i record con il campo "Amico" = a False; se il gruppo di opzioni è = a
2 la query deve restituire tutti i record con il campo "Amico" = a
True; se il
gruppo di opzioni è = a 3 la query deve restituire tutti i record.
Stefano

 Stefano
OK
SELECT tblAlpini.Cognome, tblAlpini.Nome, tblAlpini.Classe,
tblAlpini.Cessato, tblAlpini.Amico
FROM tblAlpini
WHERE (((tblAlpini.Cessato)=False) AND
((tblAlpini.Amico)=IIf([Forms]![frmStampaElenco]![Cornice2]=3,False))) OR
(((tblAlpini.Cessato)=False) AND
((tblAlpini.Amico)=IIf([Forms]![frmStampaElenco]![Cornice2]=3,True))) OR
(((tblAlpini.Cessato)=False) AND
((tblAlpini.Amico)=IIf([Forms]![frmStampaElenco]![Cornice2]=1,False))) OR
(((tblAlpini.Cessato)=False) AND
((tblAlpini.Amico)=IIf([Forms]![frmStampaElenco]![Cornice2]=2,True)));
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
Funziona! Ora ho capito. Grazie mille.
Ciao
Stefano