Applies ToAccess per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 ( espressione , vero , falso )

La sintassi della funzione IIf ha gli argomenti seguenti:

Argomento

Descrizione

espressione

Obbligatorio. Espressione da valutare.

vero

Obbligatorio. Espressione o valore restituito se espressione è True.

falso

Obbligatorio. Espressione o valore restituito se espressione è False.

Osservazioni

La funzione IIf valuta sempre sia vero sia falso, anche se restituisce uno solo dei due valori. Per questa ragione, è consigliabile considerare i possibili effetti secondari indesiderati. Se, ad esempio, la valutazione di vero restituisce un errore di divisione per zero, si verificherà un errore anche se espressione è True.

Esempi

Usare IIf in una maschera o un report    Si supponga di avere una tabella Clienti che contiene un campo denominato PaeseAreageoregione. In una maschera si desidera specificare se l'italiano è la prima lingua del contatto. È possibile aggiungere un controllo e usare IIf nella relativa proprietà Origine controllo , in questo modo:

=IIf([Paese]="Italia", "Italiano", "Altra lingua")

Quando la maschera viene aperta nella visualizzazione Maschera, nel controllo verrà visualizzato "Italiano" ogni volta che il valore per Paese è Italia e "Altra lingua" ogni volta che Paese corrisponde a un altro valore.

Usare IIf in espressioni complesse    È possibile usare qualsiasi espressione come parte di un'istruzione IIf . È anche possibile "annidare" le espressioni IIf , consentendo di valutare una serie di espressioni dipendenti. Per continuare con l'esempio precedente, è consigliabile verificare la presenza di diversi valori PaeseAreageoregione e quindi visualizzare la lingua appropriata a seconda del valore esistente:

=IIf([Paese]="Italia", "Italiano", IIf([Paese]="Francia", "Francese", IIf([Paese]="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 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 come "And" o "Or" nell'argomento espr della funzione IIf, è necessario racchiudere l'espressione logica nella funzione Eval. Vedere la tabella di esempio seguente.

Usare IIf in una query    

La funzione IIf viene usata di frequente per creare campi calcolati nelle query. La sintassi è la stessa, con la differenza che in una query è necessario anteporre all'espressione un alias campo e due punti (:) invece di un segno di uguale (=). Per usare l'esempio precedente, digitare quanto segue nella riga Campo della griglia di struttura della query:

Lingua: IIf([Paese]="Italia", "Italiano", "Altra lingua")

In questo caso "Lingua:" è l'alias di campo.

Per altre informazioni sulla creazione di query e di campi calcolati, vedere l'articolo Creare una query di selezione semplice.

Usare IIf in codice VBA    

Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e 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, "Large", "Small")End Function

Altri esempi

Espressione

Risultati

=IIf([CodiceAeroporto]="ROM","Roma",IIf([CodiceAeroporto]="MXP","Milano",IIf([CodiceAeroporto]="NAP","Napoli","Altro")))

Se [AirportCode] è "ORD", restituisce "Chicago". In caso contrario, se [AirportCode] è "ATL", restituisce "Atlanta". In caso contrario, se [AirportCode] è "SEA", restituisce "Seattle". In caso contrario, restituisci "Altro".

=IIf([DataSpedizione]<Date(),"Spedito",IIf([DataSpedizione]=Date(),"In partenza oggi","Non spedito"))

Se [DataSpedizione] è precedente alla data odierna, viene restituito "Spedito". In caso contrario, se [DataSpedizione] è uguale alla data odierna, restituisce "Spedizione oggi". In caso contrario, restituisce "Nonshipped".

=IIf([DataAcquisto]<#1/1/2008#,"Vecchio","Nuovo")

Se [DataOrdine] è precedente a 01/01/2008, viene restituito "Vecchio". In caso contrario, restituisci "Nuovo".

=IIf(Eval([Volt] Between 12 And 15 And [Amp] Between 0.25 And 0.3),"OK","Non tarato")

Se [Volt] è compreso tra 12 e 15 e [Amp] è compreso tra 0,25 e 0,3, restituisci "OK". In caso contrario, restituisci "Non tarato".

=IIf(Eval([Paese] In ("Canada","USA","Messico")),"Nordamerica","Altro")

Se [Paese] è "Canada", "USA" o "Messico", restituisce "America del Nord". In caso contrario, restituisci "Altro".

=IIf([Media]>=90,"A",IIf([Media]>=80,"B",IIf([Media]>=70,"C",IIf([Media]>=60,"D","F"))))

Se [Media] è maggiore di 90, restituisce "A". In caso contrario, se [Media] è maggiore di 80, restituisce "B". In caso contrario, se [Media] è maggiore di 70, restituisce "C". In caso contrario, se [Media] è maggiore di 60, restituisce "D". In caso contrario, restituisci "F".

Nota: Se si usa la funzione IIf per creare un campo calcolato in una query, sostituire il segno di uguale (=) con un alias campo e due punti (:). Ad esempio, Stato: IIf([DataSpedizione]<Date(),"Spedito",IIf([DataSpedizione]=Date(),"In partenza oggi","Non spedito"))

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.