Función Silnm

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Devuelve una de dos partes dependiendo de la evaluación de una expresión.

Se puede usar IIf en cualquier lugar en el que se puedan usar expresiones. Se usa IIf para determinar si otra expresión es verdadera o falsa. Si la expresión es verdadera, IIf devuelve un valor. Si es falso, IIf devuelve otro valor. Usted especifica los valores que IIf devuelve.

Ver algunos ejemplos

Sintaxis

IIf(expr, truepart, falsepart)

La IIf sintaxis de las funciones consta de los siguientes argumentos:

argumento Descripción
expr Obligatorio. Expresión que se desea evaluar.
truepart Obligatorio. El valor o expresión devuelto si expr es True.
falsepart Obligatorio. El valor o expresión devuelto si expr es False.

Observaciones

IIf siempre evalúa ambos truepart y falsepart, aunque solo devuelva uno de ellos. Debido a este comportamiento, esté atento a los efectos secundarios no deseados. Por ejemplo, si la evaluación falsepart da como resultado un error de división por cero, se produce un error incluso si expr es True.

Ejemplos

Uso IIf en un formulario o informe

Suponga que tiene una Customers tabla que contiene un campo denominado CountryRegion. En un formulario, desea mostrar si el italiano es el primer idioma del contacto. Puede agregar un control y usarlo IIf en su Control Source propiedad:

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

Al abrir el formulario en la vista Formulario, el control se muestra Italian siempre que el valor de CountryRegion sea Italy. Muestra Some other language siempre que CountryRegion tenga cualquier otro valor.

Uso IIf en expresiones complejas

Puede usar cualquier expresión en cualquier parte de una IIf instrucción. También puede anidar IIf expresiones, lo que le permite evaluar una serie de expresiones dependientes. Para continuar con el ejemplo anterior, es posible que desee probar varios valores diferentes CountryRegion y, a continuación, mostrar el idioma apropiado en función del valor:

=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

El texto Some other language es el falsepart argumento de la función más IIf interna. Dado que cada función anidada IIf es el falsepart argumento de la IIf función que la contiene, el texto Some other language se devuelve solo si todos los expr argumentos de las IIf funciones se evalúan como False.

Para otro ejemplo, supongamos que trabaja en una biblioteca. La base de datos de la biblioteca tiene una tabla con un nombre Check Outs que contiene un campo llamado Due Date, que contiene la fecha de devolución de un libro en particular. Puede crear un formulario que muestre el estado de un elemento extraído en un control mediante la función de la IIf propiedad de Control Source ese control:

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

Al abrir el formulario en la vista Formulario, el control muestra OVERDUE si el valor de Due Date es menor que la fecha actual, Due today si es igual a la fecha actual y Not Yet Due , en caso contrario.

Nota

Para usar operadores lógicos como And o Or en el expr argumento de la IIf función, debe incluir la expresión lógica en la función Eval . Vea la tabla de ejemplo siguiente.

Usar IIf en una consulta

La IIf función se usa a menudo para crear campos calculados en consultas. La sintaxis es la misma, excepto que en una consulta debe comenzar 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 consulta:

Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")

En este caso, Language: es el alias del campo.

Para obtener más información sobre cómo crear consultas y campos calculados, consulte Crear una consulta de selección simple.

Uso IIf en código VBA

Nota

Los ejemplos siguientes muestran cómo usar 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 IIf función para evaluar el TestMe parámetro del CheckIt procedimiento y se devuelve la palabra Large si la cantidad es mayor que 1000. De lo contrario, devuelve la palabra Small.

Function CheckIt(TestMe As Integer)
    CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Más ejemplos

  1. Expresión:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    Resultado: Si [AirportCode] es "ORD", return "Chicago". De lo contrario, si [AirportCode] es "ATL", return "Atlanta". De lo contrario, si [AirportCode] es "SEA", return "Seattle". De lo contrario, return "Other".

  2. Expresión:

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

    Resultado: Si [ShipDate] es anterior a la fecha actual, devolver "Shipped". De lo contrario, si [ShipDate] es igual a la fecha actual, devolver "Shipping today". De lo contrario, return "Unshipped".

  3. Expresión:

    =IIf([PurchaseDate]<#1/1/2008#,"Old","New")
    

    Resultado: Si [PurchaseDate] es anterior a 1/1/2008, return "Old". De lo contrario, return "New".

  4. Expresión:

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

    Resultado: Si [Volts] está entre 12 y 15 y [Amps] está entre 0,25 y 0,3, devolver "OK". De lo contrario, return "Out of calibration".

  5. Expresión:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    Resultado: Si [CountryRegion] es "Canada", "USA", o "Mexico", return "North America". De lo contrario, return "Other".

  6. Expresión:

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

    Resultado: Si [Average] es 90 o mayor, devolver "A". De lo contrario, si [Average] es 80 o mayor, devolver "B". De lo contrario, si [Average] es 70 o mayor, devolver "C". De lo contrario, si [Average] es 60 o mayor, devolver "D". De lo contrario, return "F".

Nota

Si usa la IIf función para crear un campo calculado en una consulta, reemplace el signo igual (=) por un alias de campo y dos puntos (:). Por ejemplo, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).