Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Utilize a função Eval para avaliar uma expressão que resulta numa cadeia de texto ou num valor numérico.
Sintaxe
expressão. Eval (StringExpr)
expressão Uma variável que representa um Aplicativo objeto.
Parâmetros
| Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
|---|---|---|---|
| StringExpr | Obrigatório | String | Uma expressão avaliada como uma cadeia de texto alfanumérico. 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 precisa ser avaliado como uma cadeia de caracteres ou um valor numérico; ele não pode ser avaliado como um objeto do Microsoft Access. |
Valor de retorno
Variant
Comentários
Você pode construir uma sequência e, então, passá-la 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") devolve 2.
Se você passar para a função Eval uma sequência que contenha o nome de uma função, Eval retornará o valor de retorno da função. Por exemplo, Eval("Chr$(65)") devolve "A".
Caso você esteja 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()")
Utilize a função Eval num controlo calculado num formulário ou relatório, ou numa macro ou módulo. A função Eval retorna um Variant do tipo cadeia de caracteres ou numérico.
O argumento stringexpr deve ser uma expressão que esteja armazenada em uma sequência. Se você passar para a função Eval uma sequência que não contenha uma expressão numérica ou um nome de função, mas apenas uma sequência de texto simples, ocorrerá um erro em tempo de execução. Por exemplo, Eval("Smith") resulta num erro.
Utilize a função Eval para determinar o valor armazenado na propriedade Valor de um controlo. O exemplo a seguir passa para a função Eval uma cadeia de caracteres contendo uma referência completa a um controle. 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))
Utilize a função Eval para aceder a operadores de expressão que não estão normalmente disponíveis no Visual Basic. Por exemplo, você não pode utilizar os operadores SQL Between...And ou In diretamente em seu código, mas pode utilizá-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 dentre várias abreviações de estado especificadas. Se o campo contiver uma das abreviaturas, intState será Verdadeiro (1). Observe que são utilizadas 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 supõe que você tem uma série de 50 funções definidas como A1, A2, e assim por diante. Este exemplo utiliza 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 exemplo seguinte aciona um evento Clique 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 (=) que significa que é o nome de uma função, a função Eval chama a função, o que é equivalente a acionar o evento Clique . 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 designada.
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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.