Renvoie une ou deux parties, selon l’évaluation d’une expression.
Vous pouvez les utiliser IIf partout où vous pouvez utiliser des expressions. Permet IIf de déterminer si une autre expression est vraie ou fausse. Si la valeur de l’expression est Vrai, IIf renvoie une valeur. Si la valeur est false, IIf retourne une autre valeur. Vous spécifiez les valeurs renvoyées IIf .
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 renvoyée si expr est True. |
falsepart |
Obligatoire. Valeur ou expression renvoyée si expr est False. |
Remarques
IIf Évalue toujours les deux truepart et falsepart, même s’il n’en renvoie qu’un. En raison de ce comportement, surveillez les effets secondaires indésirables. Par exemple, si l’évaluation falsepart des résultats est une erreur de division par zéro, une erreur se produit même si expr est True.
Exemples
Utilisation IIf sur un formulaire ou un rapport
Supposons que vous ayez une Customers table contenant un champ nommé CountryRegion. Dans un formulaire, vous souhaitez indiquer si l’italien est la langue maternelle du contact. Vous pouvez ajouter un contrôle et l’utiliser IIf dans sa Control Source propriété :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Lorsque vous ouvrez un 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 qu’il CountryRegion a une autre valeur.
Utilisation IIf dans des expressions complexes
Vous pouvez utiliser une 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 reprendre 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. Comme chaque fonction imbriquée IIf est l’argument falsepart de la IIf fonction qui la contient, le texte Some other language n’est renvoyé que si tous les expr arguments des IIf fonctions prennent la Falsevaleur .
Pour un autre exemple, supposons que vous travaillez dans une bibliothèque. La base de données de la bibliothèque comporte une table nommée Check Outs qui contient un champ nommé Due Date, qui contient la date à laquelle un livre particulier doit être renvoyé. Vous pouvez créer un formulaire qui affiche le status d’un élément extrait dans un contrôle à l’aide de la IIf fonction de la 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 s’affiche OVERDUE si la valeur de Due Date est inférieure à la date du jour, Due today si elle est égale à la date du jour, et Not Yet Due dans le cas contraire.
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 entre ces opérateurs dans la fonction Eval . Consultez l’exemple de tableau qui suit.
Utilisation 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 identique, sauf que dans une requête, vous devez faire précéder l’expression d’un alias de champ et de 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 création de requête :
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
Dans ce cas, Language: il s’agit de l’alias de champ.
Pour plus d’informations sur la création de requêtes et de champs calculés, voir Créer une requête Sélection simple.
Utilisation 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 développeur dans la liste déroulante en regard de Recherche, 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 renvoie le mot Large si le montant est supérieur à 1000. Dans le cas contraire, le mot Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Autres exemples
Expression :
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Résultat : Si
[AirportCode]est"ORD", retournez"Chicago". Sinon, si[AirportCode]est"ATL", retournez"Atlanta". Sinon, si[AirportCode]est"SEA", retournez"Seattle". Sinon, retournez ."Other"Expression :
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Résultat : si
[ShipDate]elle est antérieure à la date du jour, retournez"Shipped". Sinon, si[ShipDate]est égal à la date du jour, retournez"Shipping today". Sinon, retournez ."Unshipped"Expression :
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Résultat : Si
[PurchaseDate]est antérieur à1/1/2008, return"Old". Sinon, retournez ."New"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]est compris entre 0,25 et 0,3, retournez"OK". Sinon, retournez ."Out of calibration"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"Expression :
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Résultat : Si
[Average]la valeur est égale ou supérieure à 90, retournez"A". Dans le cas contraire, si[Average]la valeur est égale ou supérieure à 80, retournez"B". Sinon, si[Average]la valeur est égale ou supérieure à 70, retournez"C". Sinon, si[Average]la valeur est égale ou supérieure à 60, retournez"D". Sinon, retournez ."F"
Remarque
Si vous utilisez cette 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")).