IIF |
Itération si |
|---|---|
| Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000 | Microsoft Access |
Syntaxe
| iif(condition, value_if_true, value_if_false) |
Paramètres
| Nom | Description |
|---|---|
| condition | Ce paramètre permet d'indiquer la condition de test. |
| value_if_true | Ce paramètre permet d'indiquer l'expression à retourner si la condition de test est vrai. |
| value_if_false | Ce paramètre permet d'indiquer l'expression à retourner si la condition de test est fausse. |
Description
Cette fonction permet d'effectuer une évaluation condition et d'ainsi retourner le deuxième argument si la condition est vrai et le troisième argument si la condition est fausse.
Remarques
- La fonction permet d'effectuer un test conditionnel : La fonction IIf évalue une condition logique et retourne l'une de deux expressions selon le résultat obtenu. Si la condition est vraie, la deuxième expression est retournée; sinon, c'est la troisième qui est renvoyée. Cette fonction constitue l'équivalent d'une instruction If...Then...Else sous une forme compacte.
- Elle est très utilisée dans les requêtes et les expressions calculées : IIf est largement employée dans les requêtes Access pour calculer une valeur en fonction d'une condition. Elle est également présente dans les formulaires, les états et les contrôles calculés. Son utilisation permet d'éviter l'écriture de procédures VBA pour des traitements simples.
- La condition peut contenir des expressions complexes : Le premier paramètre peut faire intervenir des opérateurs de comparaison (=, <, >, <=, >=, <>) ainsi que des opérateurs logiques (And, Or, Not). Il est donc possible de construire des conditions élaborées répondant à des règles métier complexes. Cette souplesse fait de IIf une fonction très puissante.
- Les deux expressions de résultat sont évaluées : Contrairement à ce que l'on pourrait penser, IIf évalue généralement les deux expressions (value_if_true et value_if_false), même si une seule sera finalement retournée. Cela peut provoquer une erreur lorsqu'une des deux expressions contient un calcul invalide, comme une division par zéro. Les développeurs doivent donc tenir compte de ce comportement particulier.
- Les valeurs retournées peuvent être de différents types : Les expressions de retour peuvent produire des nombres, des chaînes de caractères, des dates, des valeurs booléennes ou tout autre type compatible avec VBA. Toutefois, il est recommandé que les deux branches retournent des types compatibles afin d'éviter des conversions implicites ou des résultats inattendus. Cela améliore également la lisibilité des requêtes.
- Les fonctions Nz et IIf sont souvent utilisées ensemble : Dans les bases de données Access, il est fréquent de rencontrer des valeurs Null. En combinant Nz avec IIf, il devient possible de traiter correctement ces situations et d'éviter les erreurs de calcul. Cette association est particulièrement utile dans les formulaires et les rapports.
- Les appels imbriqués permettent de gérer plusieurs cas : Il est possible d'imbriquer plusieurs fonctions IIf afin de traiter plus de deux situations. Par exemple, une application peut attribuer une mention différente selon une note obtenue ou un statut particulier selon une valeur numérique. Toutefois, un trop grand nombre d'imbrications peut rendre le code difficile à lire et à maintenir.
- Elle constitue une alternative compacte à l'instruction If...Then...Else : Dans le code VBA, un bloc If...Then...Else est souvent plus lisible lorsqu'il contient plusieurs instructions. En revanche, IIf est idéale lorsqu'il suffit de retourner une seule valeur dans une expression. Le choix entre les deux dépend donc principalement du contexte et de la complexité du traitement.
- Elle est très utilisée pour personnaliser l'affichage des données : IIf permet d'afficher un texte différent selon une condition, par exemple "Payé" ou "Non payé", "Actif" ou "Inactif", ou encore d'attribuer une catégorie à une valeur numérique. Cette fonctionnalité est très appréciée dans les formulaires, les états et les requêtes destinées aux utilisateurs. Elle améliore la lisibilité des résultats sans modifier les données enregistrées.
- La fonction est compatible avec toutes les versions modernes de Microsoft Access : La fonction IIf est disponible depuis les premières versions de Microsoft Access intégrant VBA et son comportement est demeuré stable au fil des années. Elle est compatible avec Access 2000, Access XP, Access 2003, Access 2007, Access 2010, Access 2013, Access 2016 ainsi qu'avec Microsoft 365. Cette stabilité garantit que les applications utilisant des expressions conditionnelles continueront de fonctionner correctement lors des migrations vers des versions plus récentes d'Access.
Exemple
Voici un exemple de comment utiliser la fonction SI dans Microsoft Access :
iif ([Qty] > 10, "large", "petit")
Cet exemple renverrait « grand » si la valeur du champ Qté est supérieure à 10. Sinon, il renverrait «petit».
Ceci est équivalent à l'instruction IF suivante en VBA.
If [Qty] > 10 Then
result = "large"
Else
result = "petit"
End If
Dernière mise à jour : Mardi, le 28 juillet 2015