Microsoft Office Online
Iniciar sessão no Meu Office Online (O que é isto?) | Iniciar sessão

 
 
Microsoft Office Access
Procurar
Procurar
 
 
 
 
Aviso: está a visualizar esta página com um browser não suportado. Este Web site funciona melhor com o Microsoft Internet Explorer 6.0 ou posterior, o Firefox 1.5 ou o Netscape Navigator 8.0 ou posterior. Mais informações sobre browsers suportados.

Função Aval
 

Pode utilizar a função Aval para avaliar uma expressão (expressão: combinação de operadores, nomes de campos, funções, literais e constantes avaliada como um único valor. As expressões podem especificar critérios (por exemplo, Valor da Encomenda>10000) ou executar cálculos em valores de campo (por exemplo, Preço*Quantidade).) que resulte numa cadeia de texto ou num valor numérico.

Pode construir uma cadeia e, em seguida, passá-la para a função Aval como se a mesma fosse uma expressão real. a função Aval avalia a expressão da cadeia (expressão de cadeia: expressão que equivale a uma sequência de caracteres contíguos. Os elementos da expressão podem ser: funções que devolvem uma cadeia ou uma Variante de cadeia (VarType 8); uma cadeia literal, uma constante, uma variável ou Variante.) e devolve o respectivo valor. Por exemplo, Eval("1 + 1") devolve 2.

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

Sintaxe

Aval(expressãocadeia)

O argumento expressãocadeia é uma expressão que devolve uma cadeia de texto alfanumérico. Por exemplo, expressãocadeia pode ser uma função que devolve uma cadeia ou um valor numérico. Ou pode ser uma referência a um controlo (controlo: objecto de interface gráfica do utilizador como, por exemplo, uma caixa de texto, caixa de verificação, barra de deslocamento ou botão de comando que permite aos utilizadores controlar o programa. Os controlos são utilizados para apresentar dados ou opções, executar uma determinada acção ou facilitar a leitura da interface do utilizador.) num formulário. O argumento expressãocadeia tem de devolver uma cadeia ou valor numérico; não pode devolver um objecto do Microsoft Access (objecto do Microsoft Access: objecto definido pelo Access relacionado com o Access, com a respectiva interface ou com formulários, relatórios e páginas de acesso a dados de uma aplicação e que pode ser utilizado para programar os elementos da interface utilizada para introduzir e apresentar dados.).

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

 Nota   Se estiver a passar o nome de uma função para a função Aval, tem de incluir parênteses depois do nome da função no argumento expressãocadeia. 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 Aval num controlo calculado (controlo calculado: controlo utilizado num formulário, relatório ou página de acesso a dados para apresentar o resultado de uma expressão. O resultado é calculado de novo sempre que houver uma alteração em qualquer dos valores nos quais a expressão se baseia.) num formulário ou relatório, ou numa macro ou módulo. A função Aval devolve uma Variante (tipo de dados Variante: tipo de dados predefinido para variáveis que não possuem caracteres de declaração de tipo quando uma instrução do tipo Def não está em vigor. Uma Variante pode armazenar dados numéricos, de cadeia, de data/hora, Nulo ou Vazio.) que é uma cadeia ou um tipo numérico.

O argumento expressãocadeia tem de ser uma expressão armazenada numa cadeia. Se passar para a função Aval uma cadeia que não contenha uma expressão numérica nem o nome de uma função, mas apenas uma cadeia de texto simples, ocorre um erro de tempo de execução (erro durante a execução: erro que pode ser detectado apenas quando uma aplicação estiver a ser executada.). Por exemplo, Eval("Smith") resulta num erro.

Pode utilizar a função Aval para determinar o valor armazenado na propriedade Valor de um controlo. O exemplo seguinte passa uma cadeia que contém uma referência completa a um controlo para a função Aval. Em seguida, apresenta o valor actual 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 Aval para aceder a operadores de expressão que não se encontrem normalmente disponíveis num módulo do Visual Basic for Applications (VBA). Por exemplo, não é possível utilizar operadores de SQL Entre...E ou Em directamente no código, mas pode utilizá-los numa expressão passada para a função Aval.

O exemplo seguinte determina se o valor de um controlo RegiãoDoDestino num formulário Encomendas consiste numa de várias abreviaturas de estado especificadas. Se o campo contiver uma das abreviaturas, intState será Verdadeiro (–1). Note que deve utilizar 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')")
		

Exemplo

O exemplo seguinte assume que o utilizador tem uma série de 50 funções definidas como A1, A2 e assim sucessivamente. Este exemplo utiliza a função Aval 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 activa um evento Clique como se o utilizador tivesse clicado num botão de um formulário. Se o valor da propriedade AoFazerClique do botão começar com um sinal de igual (=), que significa que é o nome de uma função, a função Aval chama a função, o que é equivalente a activar o evento Clique. Se o valor não começar com um sinal de igual, o mesmo terá de atribuir um nome a uma macro. O método ExecutarMacro do objecto DoCmd executa a macro com nome.

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
		
anúncio