Funzione IIf

Si applica a
Access 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 usare IIf qualsiasi posizione in cui è possibile usare le espressioni. Consente IIf di determinare se un'altra espressione è vera o falsa. Se l'espressione è vera, IIf restituisce un valore. Se è falso, IIf restituisce un altro valore. Specificare i valori restituiti IIf .

Vedere alcuni esempi

Sintassi

IIf(expr, truepart, falsepart)

Gli IIf argomenti della sintassi della funzione sono i seguenti:

Argomento Descrizione
expr Obbligatorio. Espressione da valutare.
truepart Obbligatorio. Valore o espressione restituita se expr è True.
falsepart Obbligatorio. Valore o espressione restituita se expr è False.

Osservazioni

IIf valuta sempre entrambi truepart e falsepart, anche se ne restituisce solo uno. A causa di questo comportamento, guardare per gli effetti collaterali indesiderati. Ad esempio, se la valutazione restituisce falsepart un errore di divisione per zero, si verifica un errore anche se expr è True.

Esempi

Usare IIf in una maschera o un report

Si supponga di avere una Customers tabella che contiene un campo denominato CountryRegion. In un modulo si vuole mostrare se l'italiano è la prima lingua del contatto. È possibile aggiungere un controllo e usarlo IIf nella relativa Control Source proprietà:

=IIf([CountryRegion]="Italy", "Italian", "Some other language")

Quando si apre la maschera in visualizzazione Maschera, il controllo viene visualizzato Italian ogni volta che il valore di CountryRegion è Italy. Viene visualizzata Some other language ogni volta che CountryRegion è presente un altro valore.

Usare IIf in espressioni complesse

È possibile usare qualsiasi espressione in qualsiasi parte di un'istruzione IIf . È anche possibile annidare IIf le espressioni, che consentono di valutare una serie di espressioni dipendenti. Per continuare con l'esempio precedente, è consigliabile testare diversi valori e CountryRegion quindi visualizzare la lingua appropriata in base al valore:

=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

Il testo Some other language è l'argomento falsepart della funzione più IIf interna. Poiché ogni funzione annidata IIf è l'argomento falsepart della IIf funzione che la contiene, il testo Some other language viene restituito solo se tutti gli expr argomenti delle IIf funzioni restituiscono False.

Si supponga, ad esempio, di lavorare in una raccolta. Il database di libreria ha una tabella denominata Check Outs che contiene un campo denominato Due Date, che contiene la data di scadenza di un determinato libro. È possibile creare una maschera che mostri lo stato di un elemento estratto in un controllo usando la IIf funzione nella proprietà del Control Source controllo:

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

Quando si apre la maschera in visualizzazione Maschera, il controllo viene visualizzato OVERDUE se il valore di Due Date è minore della data corrente, Due today se è uguale alla data corrente e Not Yet Due in caso contrario.

Nota

Per usare operatori logici come And o Or nell'argomento expr della IIf funzione, è necessario racchiudere l'espressione logica nella funzione Eval . Vedere la tabella di esempio seguente.

Usare IIf in una query

La IIf funzione viene spesso usata per creare campi calcolati nelle query. La sintassi è la stessa, tranne per il fatto che in una query è necessario anteporre all'espressione un alias di campo 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:

Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")

In questo caso, Language: è l'alias del campo.

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

Usare IIf nel codice VBA

Nota

Gli esempi seguenti illustrano come usare 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 quindi immettere uno o più termini nella casella di ricerca.

Questo esempio usa la IIf funzione per valutare il TestMe parametro della CheckIt routine e restituisce la parola Large se il valore è maggiore di 1000. In caso contrario, restituisce la parola Small.

Function CheckIt(TestMe As Integer)
    CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Altri esempi

  1. Espressione:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    Risultato: 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 "Other".

  2. Espressione:

    =IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
    

    Risultato: se [ShipDate] è anteriore alla data odierna, restituisce "Shipped". In caso contrario, se [ShipDate] è uguale alla data odierna, restituisce "Shipping today". In caso contrario, restituisci "Unshipped".

  3. Espressione:

    =IIf([PurchaseDate]<#1/1/2008#,"Old","New")
    

    Risultato: se [PurchaseDate] è precedente a 1/1/2008, restituisce "Old". In caso contrario, restituisci "New".

  4. Espressione:

    =IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")
    

    Risultato: se [Volts] è compreso tra 12 e 15 ed [Amps] è compreso tra 0,25 e 0,3, restituisce "OK". In caso contrario, restituisci "Out of calibration".

  5. Espressione:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    Risultato: se [CountryRegion] è "Canada", "USA"o "Mexico", restituisce "North America". In caso contrario, restituisci "Other".

  6. Espressione:

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

    Risultato: se [Average] è maggiore di 90, restituisce "A". In caso contrario, se [Average] è maggiore di 80, restituire "B". In caso contrario, se [Average] è maggiore di 70, restituire "C". In caso contrario, se [Average] è maggiore di 60, restituire "D". In caso contrario, restituisci "F".

Nota

Se si usa la IIf funzione per creare un campo calcolato in una query, sostituire il segno di uguale (=) con un alias di campo e i due punti (:). Ad esempio, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).