Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Retourne l’une des deux parties, en fonction de l’évaluation d’un expression.

Vous pouvez utiliser IIf partout où vous pouvez utiliser des expressions. Vous utilisez IIf pour déterminer si une autre expression a la valeur true ou false. Si l’expression a la valeur true, IIf renvoie une valeur ; si la valeur est false, IIf renvoie une autre valeur. Vous spécifiez les valeurs renvoyées par IIf .

Voir quelques exemples

Syntaxe

IIf ( expr , truepart , falsepart )

La syntaxe de la fonction IIf comprend 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 les valeurs truepart et falsepart, même si elle ne retourne qu’un seul d’entre eux. Pour cette raison, vous devriez watch pour les effets secondaires indésirables. Par exemple, si l’évaluation de 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 table Customers 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 propriété Source de contrôle , comme suit :

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

Lorsque vous ouvrez le formulaire en mode Formulaire, le contrôle affiche « Italien » chaque fois que la valeur de CountryRegion est Italie, et « Une autre langue » chaque fois que CountryRegion est une autre valeur.

Utiliser IIf dans des expressions complexes    Vous pouvez utiliser n’importe quelle expression comme partie d’une instruction IIf . Vous pouvez également « imbriquer » 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 CountryRegion différentes, puis afficher la langue appropriée en fonction de la valeur existante :

=IIf([CountryRegion]="Italy », « Italian », IIf([CountryRegion]="France », « Français », IIf([CountryRegion]="Germany », « German », « Some other language »)))

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

Pour un autre exemple, supposons que vous travaillez dans une bibliothèque. La base de données de bibliothèque possède une table nommée Extractions qui contient un champ, nommé Date d’échéance, qui contient la date d’échéance d’un livre particulier. Vous pouvez créer un formulaire qui indique le status d’un élément extrait dans un contrôle à l’aide de la fonction IIf dans la propriété Source du contrôle de ce contrôle, comme suit :

=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 « EN RETARD » si la valeur de date d’échéance est inférieure à la date actuelle, « Échéance aujourd’hui » si elle est égale à la date actuelle et « Non encore échéance » dans le cas contraire.

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

Utiliser IIf dans une requête    

La fonction IIf est fréquemment utilisée pour créer des champs calculés dans des requêtes. La syntaxe est la même, à l’exception du fait 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, vous devez taper ce qui suit dans la ligne Champ de la grille de conception de requête :

Langue : 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 l’article Créer une requête select simple.

Utiliser IIf dans le code VBA    

Remarque : Les exemples suivants illustrent l’utilisation de 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 Recherche et 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 retourne le mot « Large » si la quantité est supérieure à 1 000 ; sinon, elle renvoie le mot « Small ».

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, retournez « Autre ».

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

Si [ShipDate] est antérieur à la date du jour, retournez « Expédié ». Sinon, si [ShipDate] est égal à la date du jour, retournez « Expédition aujourd’hui ». Sinon, retournez « Unshipped ».

=IIf([Date Purchase]<#1/1/2008#,"Ancien »,"Nouveau »)

Si [PurchaseDate] est antérieur au 1/1/2008, retournez « Old ». Sinon, retournez « Nouveau ».

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

Si [Volts] est compris entre 12 et 15 et [Amplis] est compris entre 0,25 et 0,3, retournez « OK ». Sinon, retournez « Hors étalonnage ».

=IIf(Eval([CountryRegion] In (« Canada »,"USA »,"Mexique »)),"Amérique du Nord »,"Other »)

Si [CountryRegion] est « Canada », « USA » ou « Mexico », retournez « Amérique du Nord ». Sinon, retournez « Autre ».

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

Si [Average] est égal ou supérieur à 90, retournez « A ». Sinon, si [Average] est supérieur ou égal à 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 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([ShipDate]<Date(),"Shipped »,IIf([ShipDate]=Date(),"Shipping today »,"Unshipped »))

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.