Fonction IIf

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Renvoie une ou deux parties, selon l’évaluation d’une expression.

Vous pouvez utiliser IIf n’importe où vous pouvez utiliser des expressions. Utilisez IIf pour déterminer si une autre expression a la valeur true ou false. Si l’expression a la valeur true, IIf retourne une valeur. Si la valeur est false, IIf retourne une autre valeur. Vous spécifiez les valeurs retournées IIf .

Voir quelques exemples

Syntaxe

IIf(expr, truepart, falsepart)

La IIf syntaxe de la fonction contient les arguments suivants :

Argument Description
expr Obligatoire. Expression que vous souhaitez évaluer.
truepart Obligatoire. Valeur ou expression retournée si expr a la valeur True.
falsepart Obligatoire. Valeur ou expression retournée si expr a la valeur False.

Remarques

IIf évalue toujours et truepartfalsepart, même s’il ne retourne qu’un seul d’entre eux. En raison de ce comportement, surveillez les effets secondaires indésirables. Par exemple, si l’évaluation falsepart entraîne une erreur de division par zéro, une erreur se produit même si expr a la valeur True.

Exemples

Utiliser IIf sur un formulaire ou un état

Supposons que vous ayez une Customers table qui contient un champ nommé CountryRegion. Dans un formulaire, vous souhaitez indiquer si l’italien est la première langue du contact. Vous pouvez ajouter un contrôle et utiliser IIf dans sa Control Source propriété :

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

Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle s’affiche Italian chaque fois que la valeur de CountryRegion est Italy. Il s’affiche Some other language chaque fois que CountryRegion a une autre valeur.

Utiliser IIf dans des expressions complexes

Vous pouvez utiliser n’importe quelle expression dans n’importe quelle partie d’une IIf instruction. Vous pouvez également imbriquer IIf des expressions, ce qui vous permet d’évaluer une série d’expressions dépendantes. Pour continuer avec l’exemple précédent, vous pouvez tester plusieurs valeurs différentes CountryRegion , puis afficher la langue appropriée en fonction de la valeur :

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

Le texte Some other language est l’argument falsepart de la fonction la plus IIf interne. Étant donné que chaque fonction imbriquée IIf est l’argument falsepart de la fonction qui la IIf contient, le texte Some other language est retourné uniquement si tous les expr arguments des fonctions ont la IIf valeur False.

Pour un autre exemple, supposons que vous travaillez dans une bibliothèque. La base de données de bibliothèque a une table nommée Check Outs qui contient un champ nommé Due Date, qui contient la date à laquelle un livre particulier est dû. Vous pouvez créer un formulaire qui affiche la status d’un élément extrait dans un contrôle à l’aide de la fonction dans la IIf propriété de Control Source ce contrôle :

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

Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle affiche OVERDUE si la valeur de Due Date est inférieure à la date actuelle, Due today si elle est égale à la date actuelle, et Not Yet Due sinon.

Remarque

Pour utiliser des opérateurs logiques tels que And ou Or dans l’argument expr de la IIf fonction, vous devez placer l’expression logique dans la fonction Eval . Consultez l’exemple de tableau qui suit.

Utiliser IIf dans une requête

La IIf fonction est souvent utilisée pour créer des champs calculés dans des requêtes. La syntaxe est la même, sauf que dans une requête, vous devez faire précéder l’expression d’un alias de champ et d’un signe deux-points (:) au lieu d’un signe égal (=). Pour utiliser l’exemple précédent, tapez ce qui suit dans la ligne Champ de la grille de conception de requête :

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

Dans ce cas, Language: est l’alias de champ.

Pour plus d’informations sur la création de requêtes et de champs calculés, consultez Créer une requête sélection simple.

Utiliser IIf dans le code VBA

Remarque

Les exemples suivants montrent comment utiliser cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher, puis entrez un ou plusieurs termes dans la zone de recherche.

Cet exemple utilise la IIf fonction pour évaluer le TestMe paramètre de la CheckIt procédure et retourne le mot Large si le montant est supérieur à 1 000. Sinon, elle retourne le mot Small.

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

Autres exemples

  1. Expression:

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

    Résultat : si [AirportCode] a la valeur "ORD", retournez "Chicago". Sinon, si [AirportCode] est "ATL", retournez "Atlanta". Sinon, si [AirportCode] est "SEA", retournez "Seattle". Sinon, retournez "Other".

  2. Expression:

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

    Résultat : si [ShipDate] est antérieur à la date du jour, retournez "Shipped". Sinon, si [ShipDate] est égal à la date du jour, retournez "Shipping today". Sinon, retournez "Unshipped".

  3. Expression:

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

    Résultat : si [PurchaseDate] est antérieur à 1/1/2008, retournez "Old". Sinon, retournez "New".

  4. Expression:

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

    Résultat : si [Volts] est compris entre 12 et 15 et [Amps] entre 0,25 et 0,3, retournez "OK". Sinon, retournez "Out of calibration".

  5. Expression:

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

    Résultat : si [CountryRegion] est "Canada", "USA"ou "Mexico", retournez "North America". Sinon, retournez "Other".

  6. Expression:

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

    Résultat : si [Average] est égal ou supérieur à 90, retournez "A". Sinon, si [Average] est égal ou supérieur à 80, retournez "B". Sinon, si [Average] est égal ou supérieur à 70, retournez "C". Sinon, si [Average] est égal ou supérieur à 60, retournez "D". Sinon, retournez "F".

Remarque

Si vous utilisez la IIf fonction pour créer un champ calculé dans une requête, remplacez le signe égal (=) par un alias de champ et un signe deux-points (:). Par exemple : Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).