Pouvez-vous avoir un IIF imbriqué dans IIF dans une source de contrôle?
-
28-10-2019 - |
Question
Est-ce valide dans MS Access VBA:
iif ([company] = "starbucks", "retail", iif ([item] <> "", "DLookup(....)", ""))
J'essaie d'obtenir quelque chose de similaire au travail ci-dessus.
La solution
Oui.
Vous pouvez imbriquer jusqu'à 14 instructions IIf
avant que Jet / ACE ne se plaint que «l'expression est trop complexe». Il n'y a pas de limitation similaire sur la fonction IIf
VBA.
Puisque vous l'utilisez dans la source de contrôle du formulaire, Access l'évaluera à l'aide de son service d'expression (qui le traite essentiellement comme s'il faisait partie d'une requête Jet / ACE) de sorte que les 14 niveaux de limite d'imbrication s'appliqueront .
Notez également que j'ai fait référence au IIf
Jet / ACE en tant que instruction et au IIf
VBA en tant que fonction . Bien que ces termes soient parfois utilisés de manière vague, ils ont une signification précise. L'instruction IIf
de Jet / ACE est un véritable opérateur ternaire . Le résultat est qu'elle est généralement plus efficace que la fonction VBA du même nom et qu'elle ne souffre pas de potentiel effets secondaires .