Função Eval

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Você pode usar a função Eval para avaliar uma expressão que resulta em uma cadeia de texto ou um valor numérico.

Você pode construir uma cadeia de caracteres e em seguida, passe para a função Eval como se a sequência fosse uma expressão atual. A função Eval avalia a expressão de cadeia de caracteres e retorna seu valor. Por exemplo, Eval("1 + 1") retorna 2.

Se você passar para a função Eval uma cadeia de caracteres que contém o nome de uma função, a função Eval retornará o valor de retorno da função. Por exemplo, Eval("Chr$(65)") retorna "A".

Sintaxe

Eval ( stringexpr )

O argumento stringexpr é uma expressão que avalia uma cadeia de caracteres de texto alfanumérico. Por exemplo, stringexpr pode ser uma função que retorna uma cadeia de caracteres ou um valor numérico. Ou pode ser uma referência a um controle em um formulário. O argumento stringexpr deve ser avaliados como uma cadeia de caracteres ou valor numérico; ele não é possível avaliar como um objeto do Microsoft Access.

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

Observação : Se você estiver passando o nome de uma função para a função Eval , você deve incluir parênteses após o nome da função no argumento stringexpr . Por exemplo:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Comentários

Você pode usar a função Eval em um controle calculado em um formulário ou relatório ou em uma macro ou o módulo. Retorna a função Eval um variante que é uma cadeia de caracteres ou um tipo numérico.

O argumento stringexpr deve ser uma expressão que está armazenada em uma cadeia de caracteres. Se você passar para a função Eval uma cadeia de caracteres que não contenha uma expressão numérica ou um nome de função, mas somente uma cadeia de caracteres de texto simples, ocorrerá um erro em tempo de execução. Por exemplo, Eval("Smith") resulta em um erro.

Você pode usar a função Eval para determinar o valor armazenado na propriedade valor de um controle. O exemplo a seguir passa uma cadeia de caracteres contendo uma referência completa a um controle para a função Eval . Em seguida, ele exibe o valor atual do controle em uma caixa de diálogo.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Você pode usar a função Eval para acessar operadores de expressão que normalmente não estão disponíveis em um módulo Visual Basic for Applications (VBA). Por exemplo, você não pode usar os operadores SQL entre... E ou em diretamente em seu código, mas você pode utilizá-los em uma expressão passada para a função Eval .

O exemplo a seguir determina se o valor de um controle ShipRegion em um formulário Pedidos é uma das várias abreviações de estado especificadas. Se o campo contiver uma das abreviações, intState será True (– 1). Observe que você usa aspas simples (') para incluir uma sequência dentro de outra.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Exemplo

O exemplo a seguir pressupõe que você tenha uma série de 50 funções definidas como A1, A2 e assim por diante. Este exemplo usa a função Eval para chamar cada função da série.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

O próximo exemplo aciona um evento Click como se o usuário tivesse clicado em um botão em um formulário. Se o valor da propriedade de OnClick do botão começar com um sinal de igual (=), significando que é o nome de uma função, o Eval função chama a função, que equivale a acionar o evento ao clicar . Se o valor não começar com um sinal de igual, o valor deve nomear uma macro. O método ExecutarMacro do objeto DoCmd executa a macro nomeada.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×