¿Puedes tener un IIF anidado dentro de IIF en una fuente de control?
-
28-10-2019 - |
Pregunta
¿Es esto válido en MS Access VBA:
iif ([company] = "starbucks", "retail", iif ([item] <> "", "DLookup(....)", ""))
Estoy tratando de obtener algo similar al trabajo anterior.
Solución
Sí.
Puedes anidar hasta 14 IIf
declaraciones antes de Jet/Ace se queja de que la "expresión es demasiado compleja". No hay limitación similar en el VBA IIf
función.
Dado que está utilizando esto en la fuente de control del formulario, el acceso evaluará esto utilizando su servicio de expresión (que esencialmente lo trata como si fuera parte de una consulta de chorro/as), por lo que se aplicarán los 14 niveles de límite de anidación.
Tenga en cuenta también que me referí al jet/as IIf
como un declaración y el VBA IIf
como un función. Si bien esos términos a veces se usan libremente, tienen un significado preciso. los IIf
la declaración de jet/as es una verdadera operador ternario. El resultado es que generalmente es más eficiente que la función VBA del mismo nombre y no sufre de potencial efectos secundarios.