Discussione:
Problemi con IIF nella Query
(troppo vecchio per rispondere)
Giorgio Conte
2004-06-01 05:39:55 UTC
Permalink
In una query devo filtrare i record secondo se la data di consegna e
vuota o compilata.
Pertanto nel campo [dataconsegna] della query ho inserito questa formula

IIf([Forms]![Esenzioni]![GiaVendute]=Vero;Vero;([Contratti].[DataConsegna])
Is Null).La scelta viene presa da una maschera da un flag di un campo di
controllo.
Se nella query invece che inserire la formula provo le scelte singole
(vero oppure is null) da i risultati voluti.
La sitassi della funzione IIf e giusta, come mai non funziona.
Spero di essermi spiegato e di non aver fatto troppa confusuione.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
MA
2004-06-01 06:38:45 UTC
Permalink
Post by Giorgio Conte
In una query devo filtrare i record secondo se
la data di consegna e
Post by Giorgio Conte
vuota o compilata.
Pertanto nel campo [dataconsegna] della query ho
inserito questa formula
IIf([Forms]![Esenzioni]![GiaVendute]=Vero;Vero;([C
ontratti].[DataConsegna])
Post by Giorgio Conte
Is Null).La scelta viene presa da una maschera
da un flag di un campo di
Post by Giorgio Conte
controllo.
Se nella query invece che inserire la formula
provo le scelte singole
Post by Giorgio Conte
(vero oppure is null) da i risultati voluti.
La sitassi della funzione IIf e giusta, come mai
non funziona.
Post by Giorgio Conte
Spero di essermi spiegato e di non aver fatto
troppa confusuione.
Prova a sostituire vero con -1
MAssimiliano
giovanni periforum
2004-06-01 06:48:48 UTC
Permalink
Post by Giorgio Conte
In una query devo filtrare i record secondo se la data di consegna e
vuota o compilata.
Pertanto nel campo [dataconsegna] della query ho inserito questa formula
IIf([Forms]![Esenzioni]![GiaVendute]=Vero;Vero;([Contratti].[DataConsegna])
Post by Giorgio Conte
Is Null).La scelta viene presa da una maschera da un flag di un campo di
controllo.
Se nella query invece che inserire la formula provo le scelte singole
(vero oppure is null) da i risultati voluti.
La sitassi della funzione IIf e giusta, come mai non funziona.
Spero di essermi spiegato e di non aver fatto troppa confusuione.
...

ciao
che io sappia la funzione iif restituisce un valore punto e basta, uno nel
caso il test sia vero e uno per il caso sia falso
dunque non puoi mettere - ([Contratti].[DataConsegna]) Is Null - come
risposta ma dovrai mettere solo - Null - o - Falso - per restare in linea
con il 1° caso se poi il campo [Contratti].[DataConsegna] non è quello su
cui stai lavorando ma un altro, allora agirai lì con un'altra formula.

spero di esserti stato utile

Giovanni
Angelodannato
2004-06-01 13:40:33 UTC
Permalink
Post by Giorgio Conte
In una query devo filtrare i record secondo se la data di consegna e
vuota o compilata.
Pertanto nel campo [dataconsegna] della query ho inserito questa formula
IIf([Forms]![Esenzioni]![GiaVendute]=Vero;Vero;([Contratti].[DataConsegna])
Is Null).La scelta viene presa da una maschera da un flag di un campo di
controllo.
Se nella query invece che inserire la formula provo le scelte singole
(vero oppure is null) da i risultati voluti.
La sitassi della funzione IIf e giusta, come mai non funziona.
Spero di essermi spiegato e di non aver fatto troppa confusuione.
bhè..un pochino di confusione c'è.
nella query, alla condizione del campo [dataconsegna] hai messo un IIF
che testa se il controllo [giavendute] della maschera [esenzioni] è vero
(true) oppure no (false).
se è vero (true) ti aspetti come risposta Vero (??)...cioè?? ti aspetti
che il controllo [giavendute] resti settatto a vero (true)??
se è falso (false) vuoi controllare che il campo [dataconsegna]non sia
blank. e se è blank?? che deve fare la query??
lasciando perdere un attimo la parte del Vero, devi "nidificare l' IIF.
tipo:

IIf([Forms]![Esenzioni]![GiaVendute]=Vero;Vero;IIF([Contratti].[DataConsegna]Is
Null;AZIONE SE VERO;AZIONE SE FALSO))

spero di aver capito il tuo problema..
ciao
Giorgio Conte
2004-06-02 08:38:40 UTC
Permalink
Ho provato le soluzioni sopra ma non funzionano. La funzione IIf e
IIf(espr, partevera, partefalsa)ed e quello che ho fatto.
Infatti se io scrivo nella query
IIf([Forms]![Esenzioni]![GiaVendute]=Vero;#25/01/2004#;#18/11/2003#)
a seconda se la casella di controllo e vera o falsa il risultato della
query mi fa vedere i record contenenti o una data o l'altra.
Quando io sostituisco le date con quello che voglio ottenere, cioe
voglio evidenziare i record che contengono date oppure i record dove
non ci sono le date,di conseguenza al posto delle date inserisco
da una parte VERO e dall'altra IS NULL ed a questo punto non mi estrae
piu niente.
Non riesco a capire dove si trova l'inghippo, ho provato le scelte da
solo e funzionano, ma dentro il comando IIF non va.
Grazie.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Alberto S.
2004-06-05 06:47:59 UTC
Permalink
On Wed, 2 Jun 2004 08:38:40 +0000 (UTC), "Giorgio Conte"
Post by Giorgio Conte
Ho provato le soluzioni sopra ma non funzionano. La funzione IIf e
IIf(espr, partevera, partefalsa)ed e quello che ho fatto.
Infatti se io scrivo nella query
IIf([Forms]![Esenzioni]![GiaVendute]=Vero;#25/01/2004#;#18/11/2003#)
a seconda se la casella di controllo e vera o falsa il risultato della
query mi fa vedere i record contenenti o una data o l'altra.
Quando io sostituisco le date con quello che voglio ottenere, cioe
voglio evidenziare i record che contengono date oppure i record dove
non ci sono le date,di conseguenza al posto delle date inserisco
da una parte VERO e dall'altra IS NULL ed a questo punto non mi estrae
piu niente.
Non riesco a capire dove si trova l'inghippo, ho provato le scelte da
solo e funzionano, ma dentro il comando IIF non va.
Nella query il valore assunto da un determinato campo può derivare
direttamente da un campo di una tabella oppure derivare da una formula
(il tuo caso).
Quindi con la tua formula potrai valorizzare SOLO il campo della query
e NESSUN ALTRO CAMPO.
Se la condizione è vera il tuo campo assumerà 'true'. (fin qui Ok)
Non riesco a capire che valore dovrà assumere in caso contrario
??[([Contratti].[DataConsegna])Is Null)]??

Ciao
--
Alberto
No alle guerre
Giorgio Conte
2004-06-05 14:04:37 UTC
Permalink
Mi spiace ma non riesco a far funzionare.
Va tutto be quando simulo delle date fisse, ma quando vado fuori da que
valori la query non da nessun valore
Ho anche provato a scrivere al posto della data fissa questo valore
#25/01/2004# .
Il risultato e stato una query vuota.........
Sono in un vicolo ceco.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Alberto S.
2004-06-05 20:44:18 UTC
Permalink
On Sat, 5 Jun 2004 14:04:37 +0000 (UTC), "Giorgio Conte"
Post by Giorgio Conte
Mi spiace ma non riesco a far funzionare.
Va tutto be quando simulo delle date fisse, ma quando vado fuori da que
valori la query non da nessun valore
Ho anche provato a scrivere al posto della data fissa questo valore
#25/01/2004# .
Il risultato e stato una query vuota.........
Sono in un vicolo ceco.
Lascia una parte del messaggio cui stai ripondendo (così si può capire
il senso del dicorso)

Vediamo un po' di far chiarezza ...
Nella tua query hai un campo (TuoCampo) dove, invece di riportare il
campo di una tabella hai scritto
TuoCampo:IIf([Forms]![Esenzioni]![GiaVendute]=Vero;Vero;([Contratti].[DataConsegna])
Is Null)
Il che significa che quando lanci la query vuoi che in corrispondenza
del campo 'TuoCampo':
- Se il valore del controllo 'GiaVendute' della maschera 'Esenzioni' è
"vero", appaia il valore "Vero"
- Altrimenti ??? (e qui non ho capito cosa vuoi che accada: lo devi
spiegare tu)

Ciao
--
Alberto
No alle guerre

Loading...