Pode utilizar a função DAvg para calcular a média de um conjunto de valores num conjunto especificado de registos (um domínio ). Utilize a função DAvg num módulo Visual Basic for Applications (VBA), num macro, numa expressão de consulta ou num controlo calculado.
Por exemplo, pode utilizar a função DAvg na linha de critérios de uma consulta selecionar sobre o custo de transporte para restringir os resultados aos registos em que o custo de transporte excede a média. Em alternativa, pode utilizar uma expressão que inclui a função DAvg num controlo calculado e apresentar o valor médio das encomendas anteriores junto ao valor de uma nova ordem.
Sintaxe
DAvg ( expr , domínio [, critérios] )
A sintaxe da função DAvg tem estes argumentos:
Argumento |
Descrição |
expr |
Obrigatório. Uma expressão que identifica o campo que contém os dados numéricos que pretende colocar em média. Pode ser uma expressão de cadeia que identifica um campo numa tabela ou consulta ou pode ser uma expressão que executa um cálculo em dados nesse campo. Em expr, pode incluir o nome de um campo numa tabela, um controlo num formulário, uma constante ou uma função. Se expr inclui uma função, a mesma pode ser incorporada ou definida pelo utilizador, mas não pode ser outra agregação de domínio ou função de agregação SQL. |
domínio |
Obrigatório. Uma expressão de cadeia que identifica o conjunto de registos que constituem o domínio. Pode ser um nome de tabela ou um nome de consulta de uma consulta que não necessita de um parâmetro. |
critérios |
Opcional. Uma expressão de cadeia utilizada para restringir o intervalo de dados no qual a funçãoMédia D é executada. Por exemplo, o argumento critérios é muitas vezes equivalente à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, a função DAvg avalia expr em relação a todo o domínio. Qualquer campo incluído no critérioa também tem de ser um campo no domínio; caso contrário, a função DAvg devolve um Valor Nulo. |
Observações
Os registos que contêm valores Nulos não estão incluídos no cálculo da média.
Quer utilize a função DAvg numa macro ou módulo, numa expressão de consulta ou num controlo calculado, tem de construir cuidadosamente o argumento critérios para garantir que será avaliado corretamente.
Pode utilizar a função DAvg para especificar critérios na linha Critérios de uma consulta. Por exemplo, suponha que pretende ver uma lista de todos os produtos encomendados em quantidades acima da quantidade média de encomendas. Pode criar uma consulta nas tabelas Encomendas, Detalhes da Encomenda 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")
Também pode utilizar a função DAvg numa expressão de campo calculado numa consulta ou na linha Atualizar Para de uma consulta Atualização.
Nota: Pode utilizar a função DAvg ou Média numa expressão de campo calculado num consulta de totais. Se utilizar a função DAvg , os valores são médios antes de os dados serem agrupados. Se utilizar a função Média , os dados são agrupados antes da média dos valores na expressão de campo.
Utilize a função DAvg num controlo calculado quando precisar de especificar critérios para restringir o intervalo de dados no qual a função DAvg é executada. Por exemplo, para apresentar o custo médio de transporte para envios enviados para a Califórnia, defina a propriedade OrigemDoControlo de uma caixa de texto para a seguinte expressão:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Se quiser simplesmente fazer a média de todos os registos no domínio, utilize a função Média .
Pode utilizar a função DAvg num módulo ou macro ou num controlo calculado num formulário se um campo que precisa de apresentar não estiver na origem de registos em que o formulário se baseia. Por exemplo, suponha que tem um formulário baseado na tabela Encomendas e pretende incluir o campo Quantidade da tabela Detalhes da Encomenda para apresentar o número médio de itens encomendados por um determinado cliente. Pode utilizar a função DAvg para efetuar este cálculo e apresentar os dados no formulário.
Sugestões
-
Se utilizar a função DAvg num controlo calculado, poderá querer colocar o controlo no cabeçalho ou rodapé do formulário para que o valor deste controlo não seja recalculado sempre que mudar para um novo registo.
-
Se o tipo de dados do campo a partir do qual expr é derivado for um número, a função DAvg devolve um tipo de dados Duplo. Se utilizar a função DAvg num controlo calculado, inclua uma função de conversão de tipo de dados na expressão para melhorar o desempenho.
-
Embora possa utilizar a função DAvg para determinar a média dos valores num campo num tabela com chave externa, pode ser mais eficiente criar uma consulta que contenha todos os campos de que precisa e, em seguida, basear o seu formulário ou relatório nessa consulta.
Nota: As alterações não guardadas aos registos em domínio não são incluídas quando utiliza esta função. Se pretender que a função DAvg se baseie nos valores alterados, primeiro tem de guardar as alterações ao clicar em Guardar Registo em Registos no separador Dados , ao mover o foco para outro registo ou ao utilizar o método Update .
Exemplo
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.
A função seguinte devolve o custo médio de transporte das encomendas enviadas em ou depois de uma determinada data. O domínio é uma tabela Encomendas. O argumento critérios restringe o conjunto resultante de registos com base no país/região especificado e na data de envio. Tenha em atenção que a palavra-chave E está incluída na cadeia para separar os múltiplos campos no argumento critérios . Todos os registos 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 apresentar a função, utilize a seguinte linha de código na janela Imediato:
:AvgFreightCost "UK", #1/1/96#