Newsgroup: it.comp.appl.access
Titolo: funzioni di flusso

buongiorno,
sto usando la funzione IIF ma credo di aver sbagliato qualcosa nella 
sintattica, perché non mi da mai la parte falsa, la scrittura è la seguente:
 
=IIf("[Vsanitari]<200 And [etàdeposito]<30" Or "[Vsanitari]>200 And 
[etàdeposito]<5";"OK";"smaltire subito")
 
consigli per capire cosa sto sbagliando?
 
Grazie
Akery 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

...
 
Togli le virgolette dalle condizioni, altrimenti sono solo parole, 
parole, parole:
 
=IIf([Vsanitari]<200 And [etàdeposito]<30 Or [Vsanitari]>200 And 
[etàdeposito]<5;"OK";"smaltire subito")
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Access Lobby: 
http://www.AccessDevelopers.org
 

grazie per la risposta ma ancora non funziona, mi restituisce sempre la 
parte vera.
Akery
 
"Karl Donaubauer"  ha scritto nel messaggio 
news:d4lc1s...@mid.individual.net...




 > ...ancora non funziona, mi restituisce sempre la parte vera.
 
Se sei sicuro che non è corretto fai una prova "tecnica" con numeri 
assurdi,p.e.
 
=IIf([Vsanitari]<0 And [etàdeposito]<0 Or [Vsanitari]>0 And
[etàdeposito]<0;"OK";"smaltire subito")


Ho fatto la prova, ma il ho il dubbio che il programma non interpreta 
correttamente l'ordine delle condizioni
 
[Vsanitari]<200 And [etàdeposito]<30
oppure
[Vsanitari]>200 And [etàdeposito]<5
 
ho provato con Vsanitari = 105 e etàdeposito = 32 e con Vsanitari = 235 e 
etàdeposito = 32, che dovrebbe far scattare il falso e invece mi restituisce 
OK, è come se non valorizzasse la condizione temporale.
 
Ho addirittura scritto il comando con switch ma niente è cambiato.
 
Akery
 
 
"Karl Donaubauer"  ha scritto nel messaggio 
news:d4lfpp...@mid.individual.net...




 > Ho fatto la prova,
 
ma non vuoi rivelare il risultato.
 
 > ma il ho il dubbio che il programma non interpreta
 > correttamente l'ordine delle condizioni
 >
 > [Vsanitari]<200 And [etàdeposito]<30
 > oppure
 > [Vsanitari]>200 And [etàdeposito]<5
 
AND precede OR. Per questo la sintassi dovrebb'essere giusta.
Puoi aggiungere parentesi ma sono solo decorazione o diciamo 
l'espressione dell'intenzione:
 
=IIf(([Vsanitari]<0 And [etàdeposito]<0) Or ([Vsanitari]>0 And 
[etàdeposito]<0);"OK";"smaltire subito")
 
 > ho provato con Vsanitari = 105 e etàdeposito = 32 e con Vsanitari = 235
 > e etàdeposito = 32, che dovrebbe far scattare il falso e invece mi
 > restituisce OK, è come se non valorizzasse la condizione temporale.
 >
 > Ho addirittura scritto il comando con switch ma niente è cambiato.
 
Dove fai tutto questo?
Se si tratta di una query copia/incolla la stringa SQL. Altrimenti 
copia/incolla l'espressione che usi adesso.


 Ho addirittura scritto il comando con switch ma niente è cambiato.
 
Dove fai tutto questo?
Se si tratta di una query copia/incolla la stringa SQL. Altrimenti
copia/incolla l'espressione che usi adesso.
 
il campo si trova in una maschera in cui ci sono questi due campi Vsanitari 
e etàdeposito, per questo motivo credevo di aver sbagliato sintassi, non c'è 
nulla di complicato.
Vsanitari è un numero generico derivante dalla somma di volumi
etàdeposito è calcolato con questa formula =DateDiff('g';DMin("[Data 
IN]";"[rifiuti]";"[CER]='180103*' and [smaltito]=false ");Date())
 
grazie
Akery
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Access Lobby: 
http://www.AccessDevelopers.org
 
 
 


 IN]";"[rifiuti]";"[CER]='180103*' and [smaltito]=false ");Date())
 
Forse si tratta di un problema del tipo di dati o del timing.
In una casella di testo (accanto a quella che usi per l'IIf) prova passo 
passo cosa ti danno queste espressioni:
 
=[Vsanitari]
=[etàdeposito]
=[Vsanitari]<200
=[etàdeposito]<30
=[Vsanitari] + [etàdeposito]
 
Ricevi sempre il risultato aspettato?


 [etàdeposito]<5";"OK";"smaltire subito")
 
 
Gli accenti sono ben tollerati da Access?
 

Grazie Karl!!! funziona tutto
il check che mi hai fatto fare mi ha permesso di capire che prendevo in 
considerazione il campo errato 'etàdeposito' anziché 'etàsanitari', mea 
culpa!
 
Akery
 
 
 
 
"Karl Donaubauer"  ha scritto nel messaggio 
news:d4m3il...@mid.individual.net...



JD has brought this to us :

Sì, lo sono!
 
Bruno