Renvoie une ou deux parties, selon l’évaluation d’un expression.
Vous pouvez utiliser IIf partout où vous pouvez utiliser des expressions. Utilisez IIf pour déterminer si une autre expression est vraie ou fausse. Si l’expression est vraie, IIf renvoie une valeur ; s’il est faux, IIf renvoie une autre information. Vous spécifiez les valeurs que renvoie IIf.
Syntaxe
IIf (expr, truepart, falsepart)
La syntaxe de la fonction IIf comprend les arguments suivants :
Argument |
Description |
expr |
Obligatoire. Expression que vous voulez évaluer. |
truepart |
Obligatoire. Valeur ou expression renvoyée si expr est True. |
falsepart |
Obligatoire. Valeur ou expression renvoyée si expr est False. |
Remarques
VraiFaux renvoie toujours la valeur VraiPart et Fauxpart,même si elle renvoie l’un d’eux uniquement. C’est pourquoi vous devez surveiller les effets secondaires indésirables. Par exemple, si l’évaluation de valeur Fauxpart produit une erreur de division par zéro, une erreur se produit même si expr estTrue.
Exemples
Utiliser IIf sur un formulaire ou un état Supposons que vous avez une table Clients qui contient un champ nommé CountryRegion. Dans un formulaire, indiquez si l’italien est la première langue du contact. Vous pouvez ajouter un contrôle et utiliser IIf dans sa propriété Source contrôle, comme c’est le cas :
=Si([PaysRégion]="Italie », « Italien », « Une autre langue »)
Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle affiche « Italien » chaque fois que la valeur du paysRégion est Italie et « Une autre langue » chaque fois que PaysRégion est une autre valeur.
Utiliser IIf dans des expressions complexes Vous pouvez utiliser n’importe quelle expression comme faisant partie d’une instruction IIf. Vous pouvez également « imbrier » des expressions IIf, 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 PaysRégion, puis afficher la langue appropriée en fonction de la valeur qui existe :
=Si([PaysRégion]="Italie », « Italien », IIf([PaysRégion]="France », « Français », IIf([PaysRégion]="Allemagne », « Allemand », « Une autre langue »)))
Le texte « Une autre langue » est l’argument falsepart de la fonction IIf la plus interne. Étant donné que chaque fonction VraiFaux imbrmbrées est l’argument falsepart de la fonction VraiFaux qui la contient, le texte « Une autre langue » est renvoyé uniquement si tous les arguments expr de toutes les fonctions VraiFaux sont faux.
Supposons, par exemple, que vous travaillez dans une bibliothèque. La base de données de bibliothèque comporte une table nommée Archives qui contient un champ, Intitulé Échéance, contenant la date d’échéance d’un livre particulier. Vous pouvez créer un formulaire qui indique l’état d’un élément extrait d’un contrôle à l’aide de la fonction IIf dans la propriété Source contrôle de ce contrôle, comme c’est le cas :
=IIf([Échéance]<Date(),"EN RETARD »,IIf([Échéance]=Date(),"Échéance aujourd’hui »,"Pas encore Échéance »))
Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle affiche « EN RETARD » si la valeur de l’échéance est inférieure à la date du jour, « Échéance aujourd’hui » si elle est égale à la date du jour et « Pas encore échéance » sinon.
Remarque : Pour utiliser des opérateurs logiques tels que « Et » ou « Ou » dans l’argument expr de la fonction Si, vous devez mettre l’expression logique dans la fonction Eval. Consultez l’exemple de tableau ci-dessous.
Utiliser IIf dans une requête
La fonction IIf est fréquemment utilisée pour créer des champs calculés dans les requêtes. La syntaxe est la même, à l’exception près que dans une requête,vous devez faire préfacer l’expression par un alias de champ et 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 création de requête :
Langue : IIf([PaysRégion]="Italie », « Italien », « Une autre langue »)
Dans ce cas, « Langue : » est l’alias du champ.
Pour plus d’informations sur la création de requêtes et de champs calculés, voir l’article Créer une requête Sélection simple.
Utiliser IIf dans un code VBA
Remarque : Les exemples qui suivent illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’travail avec VBA, sélectionnez Référence du développeur dans la liste de listes en regard de Rechercher, puis entrez un ou plusieurs termes dans la zone de recherche.
Cet exemple utilise la fonction IIf pour évaluer le paramètre TestMe de la procédure CheckIt et renvoie le mot « Grande » si le montant est supérieur à 1 000 ; sinon, elle renvoie le mot « Petit ».
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Autres exemples
Expression |
Résultats |
=IIf([AirportCode]="ORD »,"Chicago »,IIf([AirportCode]="ATL »,"Atlanta »,IIf([AirportCode]="SEA »,"Seattle »,"Other »))) |
Si [AirportCode] est « ORD », retournez « Chicago ». Sinon, si [AirportCode] est « ATL », retournez « Atlanta ». Sinon, si [AirportCode] est « SEA », retournez « Seattle ». Sinon, renvoyer « Autre ». |
=ValeurExpédité([DateExpédité]<Date(),"Expédié »,DateExpédité([DateExpédité]=Date(),"Expédition aujourd’hui »,"Non envoyé »)) |
Si [DateExédition] est antérieure à la date du jour, renvoyer « Expédié ». Sinon, si [DateRé livraison] est égal à la date du jour, renvoyez « Livraison aujourd’hui ». Sinon, renvoyer « Non complété ». |
=IIf([PurchaseDate]<#1/1/2008#,"Ancien »,"Nouveau ») |
Si [PurchaseDate] est antérieur au 01/01/2008, renvoyer « Ancien ». Sinon, renvoyer « Nouveau ». |
=IIf(Eval([Volts] Entre 12 et 15 Et [Amp] Entre 0,25 et 0,3),"OK »,"Hors étalonnage ») |
Si [Volts] est entre 12 et 15 et [Amp] est entre 0,25 et 0,3, renvoyer « OK ». Sinon, renvoyez « Hors étalonnage ». |
=SiF(Eval([PaysRégion] Dans (« Canada »,"États-Unis »,"Mexique »)),"Amérique du Nord »,"Autre ») |
Si [PaysRégion] est « Canada », « États-Unis » ou « Mexique », renvoyer « Amérique du Nord ». Sinon, renvoyer « Autre ». |
=IIf([Moyenne]>=90,"A »,IIf([Moyenne]>=80,"B »,IIf([Moyenne]>=70,"C »,IIf([Moyenne]>=60,"D »,"F »)))) |
Si [Moyenne] est supérieure ou supérieure à 90, renvoyer « A ». Sinon, si [Moyenne] est supérieure ou supérieure à 80, renvoyer « B ». Sinon, si [Moyenne] est supérieure ou supérieure à 70, renvoyer « C ». Sinon, si [Moyenne] est supérieure ou supérieure à 60, renvoyer « D ». Sinon, renvoyer « F ». |
Remarque : Si vous utilisez la fonction IIf 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, État : IIf([DateExpédité]<Date(),"Expédié »,IIf([DateExpédité]=Date(),"Expédition aujourd’hui »,"Non tapé »))