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

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

Você pode construir uma cadeia de caracteres e, em seguida, passá-la para a função Eval como se a cadeia de caracteres fosse uma expressão real. A função Eval avalia o 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 retornado da função. Por exemplo, Eval("Chr$(65)") retorna "A".

Sintaxe

Eval ( stringexpr )

O argumento stringexpr é uma expressão que avalia para uma cadeia de caracteres de texto alfanumérica. 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 avaliado para uma cadeia de caracteres ou valor numérico; ele não pode avaliar para um objeto do Microsoft Access.

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 Pesquisar 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 , deverá 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 módulo. A função Eval retorna uma Variant que é um tipo de cadeia de caracteres ou numérica.

O stringexpr de argumento deve ser uma expressão armazenada em uma cadeia de caracteres. Se você passar para a função Eval uma cadeia de caracteres que não contém uma expressão numérica ou um nome de função, mas apenas uma cadeia de caracteres de texto simples, ocorrerá uma 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 Value de um controle. O exemplo a seguir passa uma cadeia de caracteres que contém 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 ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "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 VBA (Visual Basic for Applications). Por exemplo, você não pode usar os operadores SQL entre... E ou em diretamente em seu código, mas você pode usá-los em uma expressão passada para a função Eval .

O próximo exemplo determina se o valor de um controle ShipRegion em um formulário Orders é 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 individuais (') para incluir uma cadeia de caracteres em outra cadeia de caracteres.

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

Exemplos de consulta

Expressão

Resultados

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

Avalia o valor da cadeia de caracteres e calcula o resultado. Resultado: 18.

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

Avalia o valor da cadeia de caracteres, identifica as funções e as executa. Resultado: data do sistema atual + mês atual, exibido na coluna "NewDate".

Exemplos de VBA

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 na série.

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

O próximo exemplo dispara um evento Click como se o usuário tivesse clicado em um botão em um formulário. Se o valor da propriedade OnClick do botão começar com um sinal igual (=), significando que ele é o nome de uma função, a função Eval chamará a função, que é equivalente a disparar o evento Clique . Se o valor não começar com um sinal igual, o valor deverá nomear uma macro. O método RunMacro do objeto DoCmd executa a macro nomeada.

Dim ctl As ControlDim varTemp As VariantSet ctl = Forms!Contacts!HelpButtonIf (Left(ctl.OnClick, 1) = "=") Then    varTemp = Eval(Mid(ctl.OnClick,2))Else    DoCmd.RunMacro ctl.OnClickEnd If

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.