Devuelve una de las dos partes, dependiendo de la evaluación de una expresión.
Puede usar IIf en cualquier lugar donde pueda usar expresiones. Use IIf para determinar si otra expresión es verdadera o falsa. Si la expresión es true, IIf devuelve un valor; si es falso, IIf devuelve otro. Especifique los valores que devuelve IIf .
Sintaxis
IIf ( expresión , parte_verdadera , partefalsa )
La sintaxis de la función IIf consta de los siguientes argumentos:
Argumento |
Descripción |
expresión |
Obligatorio. Expresión que desea evaluar. |
parteverdadera |
Necesario. Valor o expresión devuelto si expresión es True. |
partefalsa |
Necesario. Valor o expresión devuelto si expresión es False. |
Observaciones
IIf siempre evalúa tanto parte_verdadera como parte_falsa, aunque devuelva solo una de ellas. Por este motivo, debe watch efectos secundarios no deseados. Por ejemplo, si la evaluación de parte_falsa da como resultado un error de división por cero, se produce un error incluso si expresión es Verdadera.
Ejemplos
Usar IIf en un formulario o informe Suponga que tiene una tabla Clientes que contiene un campo denominado PaísRegión. En un formulario, desea indicar si el italiano es el primer idioma del contacto. Puede agregar un control y usar IIf en su propiedad Origen del control , así:
=SiInm([PaísRegión]="Italia", "Italiano", "Algún otro idioma")
Al abrir el formulario en la vista Formulario, el control muestra "Italiano" siempre que el valor de PaísRegión sea Italia y "Algún otro idioma" siempre que PaísRegión sea cualquier otro valor.
Usar IIf en expresiones complejas Puede usar cualquier expresión como parte de una instrucción IIf . También puede "anidar" expresiones IIf , lo que le permite evaluar una serie de expresiones dependientes. Para continuar con el ejemplo anterior, es posible que desee probar varios valores diferentes de PaísRegión y, después, mostrar el idioma adecuado según el valor que exista:
=SiInm([PaísRegión]="Italia", "Italiano", SiInm([PaísRegión]="Francia", "Francés", SiInm([PaísRegión]="Alemania", "Alemán", "Algún otro idioma")))
El texto "Otro idioma" es el argumento partefalsa de la función IIf más interna. Dado que cada función IIf anidada es el argumento partefalsa de la función SiInm que la contiene, el texto "Otro idioma" solo se devuelve si todos los argumentos de expresión de todas las funciones IIf se evalúan como Falso.
Por otro ejemplo, suponga que trabaja en una biblioteca. La base de datos de la biblioteca tiene una tabla denominada Des outs que contiene un campo, denominado Fecha de vencimiento, que contiene la fecha de vencimiento de un libro en particular. Puede crear un formulario que indique el estado de un elemento desprotegido en un control mediante la función SiInm de la propiedad Origen del control de ese control, así:
=SiInm([Fecha de vencimiento]<Fecha(),"VENCIDA",SiInm([Fecha de vencimiento]=Fecha(),"Vence hoy","Todavía no vence"))
Al abrir el formulario en la vista Formulario, el control muestra "VENCIDA" si el valor de Fecha de vencimiento es menor que la fecha actual, "Vence hoy" si es igual a la fecha actual y "Aún no vence" de lo contrario.
Nota: Para usar operadores lógicos como "And" o "Or" en el argumento expresión de la función IIf, debe incluir la expresión lógica en la función Eval. Vea la tabla de ejemplo siguiente.
Usar IIf en una consulta
La función SiInm se usa con frecuencia para crear campos calculados en consultas. La sintaxis es la misma, con la excepción de que en una consulta, debe anteponer la expresión con un alias de campo y dos puntos (:) en lugar de un signo igual (=). Para usar el ejemplo anterior, escriba lo siguiente en la fila Campo de la cuadrícula de diseño de la consulta:
Idioma: SiInm([PaísRegión]="Italia", "Italiano", "Algún otro idioma")
En este caso, "Idioma:" es el alias de campo.
Para obtener más información sobre cómo crear consultas y campos calculados, vea el artículo Crear una consulta de selección sencilla.
Usar IIf en código vba
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.
En este ejemplo se usa la función IIf para evaluar el parámetro TestMe del procedimiento CheckIt y se devuelve la palabra "Grande" si la cantidad es mayor que 1000; De lo contrario, devuelve la palabra "Pequeño".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Más ejemplos
Expression |
Resultados |
=SiInm([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Otros"))) |
Si [AirportCode] es "ORD", devolver "Chicago". De lo contrario, si [AirportCode] es "ATL", devolver "Atlanta". De lo contrario, si [AirportCode] es "SEA", devolver "Seattle". De lo contrario, devuelve "Otros". |
=SiInm([FechaDeEnvío]<Fecha(),"Enviado",SiInm([FechaDeEnvío]=Fecha(),"Envío hoy","Sin enviar")) |
Si [FechaDeEnvío] es anterior a la fecha actual, devolver "Enviado". En caso contrario, si [FechaDeEnlace] es igual a la fecha actual, devolver "Fecha de envío hoy". De lo contrario, devolver "Sin enviar". |
=SiInm([FechaDeInicio]<#1/1/2008#,"Antiguo","Nuevo") |
Si [PurchaseDate] es anterior a 1/1/2008, devolver "Antiguo". En caso contrario, devuelve "Nuevo". |
=SiInm(Eval([Volts] Entre 12 Y 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration") |
Si [Volts] está entre 12 y 15 y [Amperios] está entre 0,25 y 0,3, devuelve "Correcto". De lo contrario, devuelve "Fuera de la calibración". |
=SiInm(Eval([PaísRegión] En ("Canadá","EE.UU.","México")),"Norteamérica","Otros") |
Si [PaísRegión] es "Canadá", "Estados Unidos" o "México", devuelve "Norteamérica". De lo contrario, devuelve "Otros". |
=SiInm([Promedio]>=90,"A",IIf([Promedio]>=80,"B",IIf([Promedio]>=70,"C",Si([Promedio]>=60,"D","F")))) |
Si [Promedio] es 90 o mayor, devolver "A". De lo contrario, si [Promedio] es 80 o mayor, devuelve "B". De lo contrario, si [Promedio] es 70 o mayor, devolver "C". De lo contrario, si [Promedio] es 60 o mayor, devuelve "D". En caso contrario, devuelve "F". |
Nota: Si usa la función SiInm para crear un campo calculado en una consulta, reemplace el signo igual (=) por un alias de campo y dos puntos (:). Por ejemplo, Estado: SiInm([FechaDeEnvío]<Fecha(),"Enviado",SiInm([FechaDeEnvío]=Fecha(),"Envío hoy","Sin enviar"))