Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Retorna uma das duas partes, dependendo da avaliação de um expressão.

Você pode usar IIf em qualquer lugar que possa usar expressões. Você usa iIf para determinar se outra expressão é verdadeira ou falsa. Se a expressão for verdadeira, iIf retornará um valor; se for falso, iIf retornará outro. Especifique os valores que IIf retorna.

Confira alguns exemplos

Sintaxe

IIf ( expr , truepart , falsepart )

A sintaxe da função IIf tem os seguintes argumentos:

Argumento

Descrição

expr

Obrigatório. Expressão que você deseja avaliar.

truepart

Obrigatório. Valor ou expressão retornado se expr for True.

falsepart

Obrigatório. Valor ou expressão retornado se expr for False.

Comentários

IIf sempre avalia truepart e falsepart, mesmo que ele retorne apenas um deles. Por causa disso, você deve watch para efeitos colaterais indesejáveis. Por exemplo, se avaliar falsepart resultar em uma divisão por erro zero, ocorrerá um erro mesmo que expr seja True.

Exemplos

Usar iIf em um formulário ou relatório    Suponha que você tenha uma tabela Clientes que contenha um campo chamado CountryRegion. Em um formulário, você deseja denotar se italiano é a primeira língua do contato. Você pode adicionar um controle e usar iIf em sua propriedade Control Source , assim:

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

Quando você abre o formulário no modo de exibição Formulário, o controle exibe "italiano" sempre que o valor de CountryRegion é Itália e "Alguma outra língua" sempre que CountryRegion é qualquer outro valor.

Usar IIf em expressões complexas    Você pode usar qualquer expressão como qualquer parte de uma instrução IIf . Você também pode "aninhar" expressões IIf , permitindo que você avalie uma série de expressões dependentes. Para continuar com o exemplo anterior, talvez você queira testar vários valores de CountryRegion diferentes e, em seguida, exibir a linguagem apropriada, dependendo de qual valor existe:

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

O texto "Alguma outra linguagem" é o argumento falsepart da função IIf mais interna. Como cada função IIf aninhada é o argumento falsepart da função IIf que a contém, o texto "Alguma outra linguagem" só será retornado se todos os argumentos expr de todas as funções IIf forem avaliados como False.

Para outro exemplo, suponha que você trabalhe em uma biblioteca. O banco de dados da biblioteca tem uma tabela chamada Check Outs que contém um campo, chamado Data de Vencimento, que contém a data em que um determinado livro deve voltar. Você pode criar um formulário que indica o status de um item de check-out em um controle usando a função IIf na propriedade Control Source desse controle, assim:

=IIf([Data de vencimento]<Date(),"OVERDUE", IIf([Data de vencimento]=Date(),"Due today","Not yet Due"))

Quando você abre o formulário no modo de exibição Formulário, o controle exibe "OVERDUE" se o valor da Data de Vencimento for menor que a data atual, "Due today" se for igual à data atual e "Ainda não devido" caso contrário.

Observação: Para usar operadores lógicos como "And" ou "Or" no argumento expr da função IIf, você deve incluir a expressão lógica na função Eval. Confira a tabela de exemplo a seguir.

Usar iIf em uma consulta    

A função IIf é frequentemente usada para criar campos calculados em consultas. A sintaxe é a mesma, com a exceção de que, em uma consulta, você deve prefigurar a expressão com um alias de campo e um cólon (:) em vez de um sinal igual (=). Para usar o exemplo anterior, você digitaria o seguinte na linha Campo da grade de design de consulta:

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

Nesse caso, "Language:" é o alias de campo.

Para obter mais informações sobre como criar consultas e campos calculados, consulte o artigo Criar uma consulta de seleção simples.

Usar iIf no código VBA    

Observação: Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na lista suspensa ao lado de Pesquisa e insira um ou mais termos na caixa de pesquisa.

Este exemplo usa a função IIf para avaliar o parâmetro TestMe do procedimento CheckIt e retorna a palavra "Grande" se a quantidade for maior que 1000; caso contrário, ele retorna a palavra "Pequeno".

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

Mais exemplos

Expressão

Resultados

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

Se [AirportCode] for "ORD", retorne "Chicago". Caso contrário, se [AirportCode] for "ATL", retorne "Atlanta". Caso contrário, se [AirportCode] for "SEA", retorne "Seattle". Caso contrário, retorne "Outros".

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

Se [ShipDate] for anterior à data de hoje, retorne "Shipped". Caso contrário, se [ShipDate] for igual à data de hoje, retorne "Envio hoje". Caso contrário, retorne "Unshipped".

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

Se [PurchaseDate] for anterior a 1/1/2008, retorne "Old". Caso contrário, retorne "Novo".

=IIf(Eval([Volts] Entre 12 e 15 e [Amps] Entre 0,25 e 0,3),"OK", "Fora da calibragem")

Se [Volts] estiver entre 12 e 15 e [Amps] estiver entre 0,25 e 0,3, retorne "OK". Caso contrário, retorne "Fora de calibragem".

=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico"))"América do Norte","Other")

Se [CountryRegion] for "Canadá", "EUA" ou "México", retornará "América do Norte". Caso contrário, retorne "Outros".

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

Se [Média] for 90 ou maior, retorne "A". Caso contrário, se [Média] for 80 ou maior, retornará "B". Caso contrário, se [Média] for 70 ou maior, retornará "C". Caso contrário, se [Média] for 60 ou maior, retorne "D". Caso contrário, retorne "F".

Observação: Se você estiver usando a função IIf para criar um campo calculado em uma consulta, substitua o sinal igual (=) por um alias de campo e um cólon (:). Por exemplo, Status: IIf([ShipDate]<Date(),"Shipped", IIf([ShipDate]=Date(),"Shipping today","Unshipped"))

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.