La Funzione IIF - EINAUDI

Transcript

La Funzione IIF - EINAUDI
ACCESS 2010
Funzione IIf
In base alla valutazione di un'espressione, restituisce una delle due parti dell'espressione.
È possibile utilizzare la funzione IIf ovunque sia possibile utilizzare le espressioni. La funzione IIf consente di determinare se un'altra espressione
è True o False. Se l'espressione è True, IIf restituirà un valore; se è False, IIf restituirà un altro valore. I valori restituiti da IIf vengono specificati
dall'utente.
Vedere alcuni esempi
Sintassi
IIf(espr, partevera, partefalsa)
La sintassi della funzione IIf prevede gli argomenti seguenti:
ARGOMENTO
DESCRIZIONE
espr
Obbligatorio. Espressione che si desidera valutare.
partevera
Obbligatorio. Espressione o valore restituito se espr è True.
partefalsa
Obbligatorio. Espressione o valore restituito se espr è False.
Osservazioni
La funzione IIf valuta sempre sia partevera sia partefalsa, anche se restituisce uno solo dei due valori. Per questa ragione, è consigliabile
considerare i possibili effetti secondari indesiderati. Se, ad esempio, la valutazione di partefalsa restituisce un errore di divisione per zero, si
verificherà un errore anche se espr è True.
Esempi
Utilizzare IIf in una maschera o in un report Si supponga di disporre di una tabella Clienti che contiene un campo denominato
PaeseAreageografica. In una maschera si desidera determinare se l'italiano è la prima lingua del contatto. È possibile aggiungere un controllo e
utilizzare IIf nella relativa proprietà Origine controllo, come riportato di seguito:
=IIf([PaeseAreageografica]="Italia", "Italiano", "Altra lingua")
Quando la maschera viene aperta nella visualizzazione Maschera, nel controllo verrà visualizzato "Italiano" ogni volta che il valore per
PaeseAreageografica è Italia e "Altra lingua" ogni volta che PaeseAreageografica corrisponde a un altro valore.
Utilizzare IIf in espressioni complesse È possibile utilizzare qualsiasi espressione come parte di un'istruzione IIf. È inoltre possibile "annidare"
le espressioni IIf, in modo da confrontare una serie di espressioni dipendenti. Per continuare con l'esempio precedente, si supponga di voler
testare diversi valori di PaeseAreageografica e di visualizzare la lingua appropriata in base al valore esistente:
=IIf([PaeseAreageografica]="Italia", "Italiano", IIf([PaeseAreageografica]="Francia", "Francese", IIf([PaeseAreageografica]="Germania", "Tedesco",
"Altra lingua")))
Il testo "Altra lingua" costituisce l'argomento partefalsa della funzione IIf più interna. Poiché ogni funzione IIf annidata costituisce l'argomento
partefalsa della funzione IIf che la contiene, il testo "Altra lingua" viene restituito solo se tutti gli argomenti espr di tutte le funzioni IIf
restituiscono False.
Per un altro esempio si supponga di lavorare in una biblioteca. Il database della biblioteca contiene una tabella denominata Prestiti che include
un campo denominato Scadenza contenente la data entro la quale un determinato libro deve essere restituito. È possibile creare una maschera
La funzione IIF in Access2010 (Ultima revisione 14/11/2013)
Pag. 1
che indica lo stato di un elemento prestato in un controllo utilizzando la funzione IIf nella proprietà Origine controllo del controllo, nel modo
seguente:
=IIf([Scadenza]<Data(),"SCADUTO",IIf([Scadenza]=Data(),"In scadenza oggi","Non scaduto"))
>Quando la maschera viene aperta nella visualizzazione Maschera, nel controllo verrà visualizzato "SCADUTO" se la data indicata nel campo
Scadenza è precedente alla data corrente, "In scadenza oggi" se corrisponde alla data corrente, "Non scaduto" negli altri casi.
NOTA Per usare operatori logici, ad esempio "And" o "Or", nell'argomento espr della funzione IIf, è necessario racchiudere l'espressione logica
nella funzione Eval. Vedere la tabella di esempio seguente.
Utilizzare IIf in una query
La funzione IIf viene usata di frequente per creare campi calcolati nelle query. La sintassi è la stessa, ad eccezione del fatto che in una query è
necessario anteporre all'espressione un campo alias e due punti (:) anziché un segno di uguale (=). Per usare l'esempio precedente, digitare
quanto segue nella riga Campo della griglia di struttura della query:
Lingua: IIf([PaeseAreageografica]="Italia", "Italiano", "Altra lingua")
In questo caso "Lingua:" è l'alias di campo.
Per ulteriori informazioni sulla creazione di query e di campi calcolati, vedere l'articolo Selezionare dati mediante una query.
Utilizzare IIf nel codice VBA
NOTA Negli esempi seguenti viene illustrato l'utilizzo di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per ulteriori
informazioni sull'utilizzo di VBA, selezionare Riferimento per sviluppatori nell'elenco a discesa accanto a Cerca in, quindi immettere uno o più
termini nella casella di ricerca.
In questo esempio viene utilizzata la funzione IIf per valutare il parametro TestMe della routine CheckIt e restituire la parola "Grande" se il valore
è superiore a 1000 o "Piccolo" se è inferiore.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Grande", "Piccolo")
End Function
Altri esempi
ESPRESSIONE
RISULTATI
=IIf([CodiceAeroporto]="ROM","Roma",IIf([CodiceAeroporto]="MXP","Milano",IIf([CodiceAeroporto]="NAP","Napoli","Altro")))Se il valore di
[CodiceAeroporto] è
"ROM", viene restituito
"Roma", se è "MXP"
viene restituito
"Milano", se è "NAP"
viene restituito
"Napoli"; in caso
contrario, viene
restituito "Altro".
=IIf([DataSpedizione]<Date(),"Spedito",IIf([DataSpedizione]=Date(),"In partenza oggi","Non spedito"))
La funzione IIF in Access2010 (Ultima revisione 14/11/2013)
Se il valore di
[DataSpedizione] è
antecedente alla data
odierna, viene restituito
"Spedito"; se invece è
uguale alla data
odierna, viene restituito
"In partenza oggi". In
Pag. 2
caso contrario, viene
restituito "Non
spedito".
=IIf([DataAcquisto]<#1/1/2008#,"Vecchio","Nuovo")
Se il valore di
[DataAcquisto] è
antecedente a
1/1/2008, viene
restituito "Vecchio"; in
caso contrario, viene
restituito "Nuovo".
=IIf(Eval([Volt] Between 12 And 15 And [Amp] Between 0.25 And 0.3),"OK","Non tarato")
Se il valore di [Volt] è
compreso tra 12 e 15 e
il valore di [Amp] è
compreso tra 0.25 e
0.3, viene restituito
"OK"; in caso contrario,
viene restituito "Non
tarato".
=IIf(Eval([PaeseAreageografica] In ("Canada","USA","Messico")),"Nordamerica","Altro")
Se il valore di
[PaeseAreageografica]
è "Canada", "USA" o
"Messico" viene
restituito
"Nordamerica"; in caso
contrario, viene
restituito "Altro".
=IIf([Media]>=90,"A",IIf([Media]>=80,"B",IIf([Media]>=70,"C",IIf([Media]>=60,"D","F"))))
Se il valore di [Media] è
uguale o maggiore di
90 viene restituito "A",
se è uguale o maggiore
di 80 viene restituito
"B", se è uguale o
maggiore di 70 viene
restituito "C", se è
uguale o maggiore di
60 viene restituito "D";
in caso contrario, viene
restituito "F".
La funzione IIF in Access2010 (Ultima revisione 14/11/2013)
Pag. 3