Você pode usar a função DAvg para calcular a média de um conjunto de valores em um conjunto especificado de registros (um domínio ). Use a função DAvg em um módulo VBA (Visual Basic for Applications), em um macro, em uma expressão de consulta ou em um controle calculado.
Por exemplo, você pode usar a função DAvg na linha de critérios de uma consulta selecionada sobre o custo do frete para restringir os resultados aos registros em que o custo do frete excede a média. Ou você pode usar uma expressão incluindo a função DAvg em um controle calculado e exibir o valor médio de pedidos anteriores ao lado do valor de uma nova ordem.
Sintaxe
DAvg ( expr , domínio [, critérios] )
A sintaxe da função DAvg tem esses argumentos:
Argumento |
Descrição |
expr |
Obrigatório. Uma expressão que identifica o campo que contém os dados numéricos que você deseja ter em média. Pode ser um expressão de cadeia de caracteres identificar um campo em uma tabela ou consulta, ou pode ser uma expressão que executa um cálculo sobre dados nesse campo. No expr, você pode incluir o nome de um campo em uma tabela, um controle em um formulário, uma constante ou uma função. Se expr incluir uma função, ela poderá ser interna ou definida pelo usuário, mas não outra função de agregação de domínio ou de agregação de SQL. |
domínio |
Obrigatório. Uma expressão de cadeia de caracteres que identifica o conjunto de registros que constitui o domínio. Pode ser um nome de tabela ou um nome de consulta para uma consulta que não requer um parâmetro. |
critérios |
Opcional. Uma expressão de cadeia de caracteres usada para restringir o intervalo de dados no qual a função DAvg é executada. Por exemplo, os critérios geralmente são equivalentes à cláusula WHERE em uma expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, a função DAvgavaliará expr em relação a todo o domínio. Qualquer campo incluído no criteria também deve ser um campo no domínio; caso contrário, a função DAvg retorna um Null. |
Comentários
Os registros que contêm valores nulos não estão incluídos no cálculo da média.
Se você usa a função DAvg em uma macro ou módulo, em uma expressão de consulta ou em um controle calculado, você deve construir o argumento de critérios cuidadosamente para garantir que ele seja avaliado corretamente.
Você pode usar a função DAvg para especificar critérios na linha Critérios de uma consulta. Por exemplo, suponha que você queira exibir uma lista de todos os produtos ordenados em quantidades acima da quantidade média de pedidos. Você pode criar uma consulta nas tabelas Pedidos, Detalhes do Pedido e Produtos e incluir o campo Nome do Produto e o campo Quantidade, com a seguinte expressão na linha Critérios abaixo do campo Quantidade:
>DAvg("[Quantity]", "Orders")
Você também pode usar a função DAvg dentro de uma expressão de campo calculada em uma consulta ou na linha Atualizar para de um atualizar consulta.
Observação: Você pode usar a função DAvg ou Avg em uma expressão de campo calculada em um consulta de totais. Se você usar a função DAvg , os valores serão médios antes que os dados sejam agrupados. Se você usar a função Avg , os dados serão agrupados antes que os valores na expressão de campo sejam médios.
Use a função DAvg em um controle calculado quando precisar especificar critérios para restringir o intervalo de dados no qual a função DAvg é executada. Por exemplo, para exibir o custo médio do frete para remessas enviadas para a Califórnia, defina a propriedade ControlSource de uma caixa de texto como a seguinte expressão:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Se você simplesmente quiser fazer a média de todos os registros no domínio, use a função Avg .
Você pode usar a função DAvg em um módulo ou macro ou em um controle calculado em um formulário se um campo que você precisa exibir não estiver na fonte de registro na qual seu formulário se baseia. Por exemplo, suponha que você tenha um formulário baseado na tabela Pedidos e queira incluir o campo Quantidade da tabela Detalhes do Pedido para exibir o número médio de itens ordenados por um cliente específico. Você pode usar a função DAvg para executar esse cálculo e exibir os dados em seu formulário.
Dicas
-
Se você usar a função DAvg em um controle calculado, talvez deseje colocar o controle no cabeçalho ou rodapé do formulário para que o valor desse controle não seja recalculado sempre que você passar para um novo registro.
-
Se o tipo de dados do campo do qual o expr é derivado for um número, a função DAvg retornará um tipo de dados Double. Se você usar a função DAvg em um controle calculado, inclua uma função de conversão de tipo de dados na expressão para melhorar o desempenho.
-
Embora você possa usar a função DAvg para determinar a média de valores em um campo em um tabela estrangeira, talvez seja mais eficiente criar uma consulta que contenha todos os campos necessários e, em seguida, baseie seu formulário ou relatório nessa consulta.
Observação: Alterações não salvas nos registros no domínio não são incluídas quando você usa essa função. Se você quiser que a função DAvg seja baseada nos valores alterados, primeiro salve as alterações clicando em Salvar Registro em Registros na guia Dados , movendo o foco para outro registro ou usando o método Update .
Exemplo
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.
A função a seguir retorna o custo médio do frete para pedidos enviados em ou após uma determinada data. O domínio é uma tabela Orders. O argumento de critérios restringe o conjunto resultante de registros com base na data de país/região e navio fornecido. Observe que o palavra-chave AND está incluído na cadeia de caracteres para separar os vários campos no argumento de critérios. Todos os registros incluídos no cálculo da função DAvg terão ambos os critérios.
Public Function AvgFreightCost _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Double AvgFreightCost = DAvg("[Freight]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "'AND [ShippedDate] >= #" & dteShipDate & "#") End Function
Para chamar a função, use a seguinte linha de código na janela Imediata:
:AvgFreightCost "UK", #1/1/96#