Função Aval

Pode utilizar a função eval para avaliar um expressão que resulta numa cadeia de texto ou num valor numérico.

Pode construir uma cadeia e, em seguida, transferi-la para a função eval como se a cadeia fosse uma expressão real. A função eval avalia o expressão de cadeia e devolve o valor. Por exemplo, Eval("1 + 1") devolve 2.

Se passar para a função eval uma cadeia que contém o nome de uma função, a função eval devolve o valor devolvido da função. Por exemplo, Eval("Chr$(65)") devolve "A".

Sintaxe

Aval ( stringexpr )

O argumento stringexpr é uma expressão que é avaliada como uma cadeia de texto alfanumérica. Por exemplo, stringexpr pode ser uma função que devolve uma cadeia ou um valor numérico. Ou pode ser uma referência a um controlo num formulário. O argumento stringexpr tem de avaliar uma cadeia ou um valor numérico; Não pode avaliar uma objeto do Microsoft Access.

Nota: Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

Nota: Se estiver a passar o nome de uma função para a função eval , tem de 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()")

Observações

Pode utilizar a função eval num controlo calculado num formulário ou relatório, ou numa macro ou módulo. A função eval devolve uma variante que é uma cadeia ou um tipo numérico.

O argumento stringexpr tem de ser uma expressão armazenada numa cadeia. Se passar para a função eval uma cadeia que não contenha uma expressão numérica ou um nome de função, mas apenas uma cadeia de texto simples, ocorre uma erro em tempo de execução. Por exemplo, Eval("Smith") resulta num erro.

Pode utilizar a função eval para determinar o valor armazenado na propriedade valor de um controlo. O exemplo seguinte passa uma cadeia que contém uma referência completa para um controlo para a função eval . Em seguida, apresenta o valor atual do controlo numa 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))

Pode utilizar a função eval para aceder aos operadores de expressões que normalmente não estão disponíveis num módulo do Visual Basic for Applications (VBA). Por exemplo, não pode utilizar os operadores SQL entre... E , ou diretamente no seu código, pode utilizá-los numa expressão passada para a função eval .

O exemplo seguinte determina se o valor de um controlo RegiãoDeDestino num formulário encomendas é uma das várias abreviações de estado especificadas. Se o campo contiver uma das abreviaturas, intState será verdadeiro (-1). Tenha em atenção que utiliza aspas simples (') para incluir uma cadeia dentro de outra cadeia.

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

Exemplos de consulta

Expressão

Resultados

Selecione Eval ("15 + 3") como expr1 do ProductSales GROUP BY Eval ("15 + 3");

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

Selecione Eval ("data () + month (data ())") como NewDate a partir de ProductSales grupo por aval ("data () + mês (data ())");

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

Exemplos de VBA

O exemplo seguinte pressupõe que tem uma série de funções do 50 definidas como a1, a2, etc. Este exemplo utiliza 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 intI
End Sub

O exemplo seguinte aciona um evento Click como se o utilizador tivesse clicado num botão num formulário. Se o valor da propriedade onclick do botão começar com um sinal de igual (=), o que significa que é o nome de uma função, a função eval chama a função, que é equivalente a acionar o evento Click . Se o valor não começar com um sinal de igual, o valor tem de atribuir um nome a uma macro. O método RunMacro do objeto DoCmd executa a macro denominada.

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

Nota:  Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode indicar-nos se estas informações foram úteis? Eis o artigo em inglês para sua referência.​

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×