IIf, functie

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Hiermee wordt een van twee gedeelten als resultaat gegeven, afhankelijk van de evaluatie van een expressie.

U kunt IIf overal gebruiken waar u expressies kunt gebruiken. Gebruik IIf deze regel om te bepalen of een andere expressie waar of onwaar is. Retourneert één waarde als de expressie waar IIf is. Als dit onwaar is, IIf wordt een andere waarde geretourneerd. U geeft de waarden op die IIf het resultaat geven.

Enkele voorbeelden bekijken

Syntaxis

IIf(expr, truepart, falsepart)

De syntaxis van de IIf functie heeft deze argumenten:

Argument Beschrijving
expr Vereist. De expressie die u wilt evalueren.
truepart Vereist. De waarde of expressie die wordt geretourneerd als exprTrue.
falsepart Vereist. De waarde of expressie die wordt geretourneerd als exprFalse.

Opmerkingen

IIf evalueert altijd beide truepart en falsepart, ook al wordt er maar één geretourneerd. Let vanwege dit gedrag op ongewenste bijwerkingen. Bij het evalueren van falsepart resultaten in een deling door nul-fout treedt er bijvoorbeeld een fout op, zelfs als expr dat wel het geval is True.

Voorbeelden

In een formulier of rapport gebruiken IIf

Stel dat u een Customers tabel hebt met een veld met de naam CountryRegion. In een formulier wilt u laten zien of Italiaans de eerste taal van de contactpersoon is. U kunt een besturingselement toevoegen en gebruiken IIf in de Control Source eigenschap ervan:

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

Wanneer u het formulier opent in de formulierweergave, wordt het besturingselement weergegeven Italian wanneer de waarde voor CountryRegion is Italy. Het wordt weergegeven Some other language wanneer CountryRegion er een andere waarde is.

Gebruik IIf in complexe expressies

U kunt elke expressie in elk deel van een IIf instructie gebruiken. U kunt ook expressies nesten IIf , zodat u een reeks afhankelijke expressies kunt evalueren. Om verder te gaan met het voorgaande voorbeeld, wilt u mogelijk verschillende CountryRegion waarden testen en vervolgens de juiste taal weergeven op basis van de waarde:

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

De tekst Some other language is het falsepart argument van de binnenste IIf functie. Aangezien elke geneste IIf functie het falsepart argument is van de IIf functie die de functie bevat, wordt de tekst Some other language alleen geretourneerd als alle expr argumenten van de IIf functies resulteren in False.

Stel dat u in een bibliotheek werkt. De bibliotheekdatabase bevat een tabel met de naam Check Outs die het veld Due Date, bevat met daarin de datum waarop een bepaald boek terug moet komen. U kunt een formulier maken waarin de status van een uitgecheckt item in een besturingselement wordt weergegeven met behulp van de IIf functie in de eigenschap van Control Source dat besturingselement:

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

Wanneer u het formulier opent in de formulierweergave, wordt in het besturingselement weergegeven OVERDUE of de waarde van Due Date kleiner is dan de huidige datum, Due today of deze gelijk is aan de huidige datum en Not Yet Due als dit niet het geval is.

Opmerking

Als u logische operatoren zoals of AndOr in het expr argument van de IIf functie wilt gebruiken, moet u de logische expressie in de functie Eval plaatsen. Zie de voorbeeldtabel hieronder.

Gebruiken IIf in een query

De IIf functie wordt vaak gebruikt om berekende velden in query's te maken. De syntaxis is hetzelfde, behalve dat u in een query de expressie moet laten voorafgaan door een veldalias en een dubbele punt (:) in plaats van een gelijkteken (=). Typ het volgende in de rij Veld van het queryontwerpraster om het voorgaande voorbeeld te gebruiken:

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

Is in dit geval Language: de veldalias.

Zie Een eenvoudige selectiequery maken voor meer informatie over het maken van query's en berekende velden.

Gebruiken IIf in VBA-code

Opmerking

In de volgende voorbeelden ziet u hoe u deze functie kunt gebruiken in een VBA-module (Visual Basic for Applications). Voor meer informatie over het werken met VBA selecteert u Naslaginformatie voor ontwikkelaars in de vervolgkeuzelijst naast Zoeken en typt u een of meer termen in het zoekvak.

In dit voorbeeld wordt de IIf functie gebruikt om de TestMe parameter van de CheckIt procedure te evalueren en wordt het woord Large als resultaat gegeven als het bedrag groter is dan 1000. Anders wordt het woord .Small

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

Meer voorbeelden

  1. Expressie:

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

    Resultaat: als [AirportCode] dit het geval is "ORD", retourneert "Chicago"u . Anders, als [AirportCode] dat zo is "ATL", retourneer "Atlanta". Anders, als [AirportCode] dat zo is "SEA", retourneer "Seattle". Retourneer "Other"anders .

  2. Expressie:

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

    Resultaat: als [ShipDate] deze eerder is dan de datum van vandaag, wordt ."Shipped" Anders, als [ShipDate] gelijk is aan de datum van vandaag, retourneert "Shipping today". Retourneer "Unshipped"anders .

  3. Expressie:

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

    Resultaat: als [PurchaseDate] dit eerder is dan 1/1/2008, retourneert "Old"u . Retourneer "New"anders .

  4. Expressie:

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

    Resultaat: als [Volts] een waarde tussen 12 en 15 ligt en [Amps] een waarde tussen 0,25 en 0,3, wordt het resultaat "OK". Retourneer "Out of calibration"anders .

  5. Expressie:

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

    Resultaat: If [CountryRegion] is "Canada", "USA", of "Mexico", resultaat "North America". Retourneer "Other"anders .

  6. Expressie:

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

    Resultaat: als [Average] 90 of hoger is, wordt de retourwaarde "A". Anders, als [Average] 80 of hoger is, retourneert "B". Anders, als [Average] 70 of hoger is, geeft u de geretourneerde waarde "C". Anders, als [Average] 60 of hoger is, geeft u de retourwaarde "D". Retourneer "F"anders .

Opmerking

Als u de IIf functie gebruikt om een berekend veld in een query te maken, vervangt u het gelijkteken ()= door een veldalias en een dubbele punt ().: Bijvoorbeeld: Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).