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.

Puede usar IIf cualquier lugar donde pueda 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. Especifique los valores que IIf se devuelven.

Ver algunos ejemplos

Sintaxis

IIf(expr, truepart, falsepart)

La IIf sintaxis de la función tiene estos argumentos:

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

Observaciones

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

Ejemplos

Usar IIf en un formulario o informe

Supongamos 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 es Italy. Se muestra Some other language siempre que CountryRegion tiene cualquier otro valor.

Usar 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 adecuado 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 solo se devuelve si todos los expr argumentos de las IIf funciones se evalúan como False.

Por otro ejemplo, supongamos que trabaja en una biblioteca. La base de datos de la biblioteca tiene una tabla con el nombre Check Outs que contiene un campo denominado Due Date, que contiene la fecha de vencimiento de un libro en particular. Puede crear un formulario que muestre el estado de un elemento desprotegido 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, 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:

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

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

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

Usar IIf en código VBA

Nota

En los ejemplos siguientes se muestra 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 del programador en la lista desplegable junto a Buscar y, a continuación, escriba uno o varios términos en el cuadro de búsqueda.

Este ejemplo usa la IIf función para evaluar el TestMe parámetro del CheckIt procedimiento y devuelve la palabra Large si la cantidad es mayor que 1000. En caso 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", devolver "Chicago". En caso contrario, si [AirportCode] es "ATL", devolver "Atlanta". En caso contrario, si [AirportCode] es "SEA", devolver "Seattle". En caso contrario, devuelve "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". En caso contrario, si [ShipDate] es igual a la fecha actual, devolver "Shipping today". En caso contrario, devuelve "Unshipped".

  3. Expresión:

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

    Resultado: Si [PurchaseDate] es anterior a 1/1/2008, devolver "Old". En caso contrario, devuelve "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". En caso contrario, devuelve "Out of calibration".

  5. Expresión:

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

    Resultado: Si [CountryRegion] es "Canada", "USA", o "Mexico", devolver "North America". En caso contrario, devuelve "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 superior, devolver "A". En caso contrario, si [Average] es 80 o superior, devolver "B". En caso contrario, si [Average] es 70 o superior, devolver "C". En caso contrario, si [Average] es 60 o superior, devolver "D". En caso contrario, devuelve "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")).