Função IIf

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Pode utilizar ISe em qualquer lugar onde possa utilizar expressões. Utilize ISe para determinar se outra expressão é verdadeira ou falsa. Se a expressão for verdadeira, ISe devolve um valor; se for falso, ISe devolve outro. Especifique os valores devolvidos por ISe .

Ver 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 pretende avaliar.
truepart Obrigatório. Valor ou expressão devolvido se expr for Verdadeiro.
falsepart Obrigatório. Valor ou expressão devolvido se expr for Falso.

Comentários

ISe avalia sempre a parte verdadeira e a parte falsa, mesmo que devolva apenas uma delas. Por este motivo, deve ter cuidado com efeitos colaterais indesejáveis. Por exemplo, se a avaliação de peças falsas resultar num erro de divisão por zero, ocorrerá um erro mesmo que expr seja Verdadeiro.

Exemplos

Utilizar ISe num formulário ou relatório Suponha que tem uma tabela Clientes que contém um campo denominado PaísRegião. Num formulário, quer indicar se o italiano é o primeiro idioma do contacto. Pode adicionar um controlo e utilizar ISe na respetiva propriedade Origem do Controlo , da seguinte forma:

=ISe([PaísRegião]="Itália", "Italiano", "Outro idioma")

Quando abre o formulário na vista Formulário, o controlo apresenta "Italiano" sempre que o valor de PaísRegião for Itália e "Outro idioma" sempre que PaísRegião for outro valor.

Utilizar ISe em expressões complexas Pode utilizar qualquer expressão como parte de uma instrução ISe . Também pode "aninhar" expressões ISe , permitindo-lhe avaliar uma série de expressões dependentes. Para continuar com o exemplo anterior, poderá querer testar vários valores de PaísRegião diferente e, em seguida, apresentar o idioma adequado consoante o valor existente:

=ISe([PaísRegião]="Itália", "Italiano", ISe([PaísRegião]="França", "Francês", ISe([PaísRegião]="Alemanha", "Alemão", "Outro idioma")))

O texto "Outro idioma" é o argumento partefalsa da função ISe mais interna. Uma vez que cada função ISe aninhada é o argumento partefalsa da função ISe que a contém, o texto "Outro idioma" só é devolvido se todos os argumentos expr de todas as funções ISe forem avaliados como Falso.

Por outro exemplo, suponha que trabalha numa biblioteca. A base de dados da biblioteca tem uma tabela denominada Check Outs que contém um campo, com o nome Data para Conclusão, que contém a data de regresso de um determinado livro. Pode criar um formulário que indique a status de um item com saída dada num controlo através da função ISe na propriedade Origem do Controlo desse controlo, da seguinte forma:

=ISe([Data para Conclusão]<Data(),"EM ATRASO",ISe([Data para Conclusão]=Data(),"Data para Conclusão hoje","Ainda Não Vencida"))

Quando abre o formulário na vista Formulário, o controlo apresenta "EM ATRASO" se o valor de Data para Conclusão for menor do que a data atual, "Vencimento hoje" se for igual à data atual e "Ainda Não Devido" caso contrário.

Observação

Para utilizar operadores lógicos como "E" ou "Ou" no argumento expr da função ISe , tem de incluir a expressão lógica na função Eval . Veja a tabela de exemplo que se segue.

Utilizar ISe numa consulta

A função ISe é frequentemente utilizada para criar campos calculados em consultas. A sintaxe é a mesma, com a exceção de que, numa consulta, tem de preceder a expressão com um alias de campo e dois pontos (:) em vez de um sinal de igual (=). Para utilizar o exemplo anterior, escreva o seguinte na linha Campo da grelha de estrutura da consulta:

Idioma: ISe([PaísRegião]="Itália", "Italiano", "Outro idioma")

Neste caso, "Idioma:" é o alias de campo.

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

Utilizar ISe no código VBA

Observação

Exemplos que se seguem demonstram a utilização desta função num módulo Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Programador na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

Este exemplo utiliza a função ISe para avaliar o parâmetro TestMe do procedimento CheckIt e devolve a palavra "Grande" se a quantidade for superior a 1000; caso contrário, devolve a palavra "Pequeno".


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

Mais exemplos

  1. Expressão:

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

    Resultado:

    Se [AirportCode] for "ORD", devolve "Chicago". Caso contrário, se [AirportCode] for "ATL", devolve "Atlanta". Caso contrário, se [AirportCode] for "SEA", devolve "Seattle". Caso contrário, devolva "Outro".

  2. Expressão:

    =ISe([DataDeEnvio]<Data(),"Enviado",ISe([DataDeEnvio]=Data(),"Envio hoje","Não Tapado"))

    Resultado:

    Se [DataDeEnvio] for anterior à data de hoje, devolva "Enviado". Caso contrário, se [DataEnvio] for igual à data de hoje, devolve "Envio hoje". Caso contrário, devolva "Descompactado".

  3. Expressão:

    =ISe([DataDaDados]<#1/1/2008#,"Antigo","Novo")

    Resultado:

    Se [PurchaseDate] for anterior a 1/1/2008, devolve "Antigo". Caso contrário, devolva "Novo".

  4. Expressão:

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

    Resultado:

    Se [Volts] estiver entre 12 e 15 e [Amps] estiver entre 0,25 e 0,3, devolve "OK". Caso contrário, devolva "Sem calibragem".

  5. Expressão:

    =ISe(Eval([PaísRegião] Em ("Canadá","EUA","México")),"América do Norte","Outro")

    Resultado:

    Se [PaísRegião] for "Canadá", "EUA" ou "México", devolva "América do Norte". Caso contrário, devolva "Outro".

  6. Expressão:

    =ISe([Média]>=90,"A",ISe([Média]>=80,"B",ISe([Média]>=70,"C",ISe([Média]>=60,"D","F"))))

    Resultado:

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

Observação

Se estiver a utilizar a função ISe para criar um campo calculado numa consulta, substitua o sinal de igual (=) por um alias de campo e dois pontos (:). Por exemplo, Estado: ISe([DataDeEnvio]<Data(),"Enviado",ISe([DataDeEnvio]=Data(),"Envio hoje","Não Tapado"))