Pode utilizar a função DMédia para calcular a média de um conjunto de valores num conjunto específico de registos (um domínio). Utilize a função DMédia num módulo Visual Basic for Applications (VBA), numa macro, numa expressão de consulta ou num controlo calculado.
Por exemplo, pode utilizar a função DMédia na linha de critérios de uma consulta selecionar sobre custo de transporte para restringir os resultados aos registos onde o custo do transporte excede a média. Em alternativa, pode utilizar uma expressão que inclua a função DMédia num controlo calculado e apresentar o valor médio de encomendas anteriores junto ao valor de uma nova encomenda.
Sintaxe
DMédia(expr, domínio [, critérios] )
A sintaxe da função DMédia tem os seguintes argumentos:
| Argumento | Descrição |
|---|---|
| expr | Obrigatório. Uma expressão que identifica o campo que contém os dados numéricos cuja média pretende calcular. 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, 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ção DMédia é executada. Por exemplo, criteria é muitas vezes equivalente à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, a função DMédia avalia o expr em comparação com o domínio inteiro. Qualquer campo incluído nos critérios também deve ser um campo no domínio; caso contrário, a função DMédia devolve um valor Nulo. |
Comentários
Os registos que contenham valores Nulos não serão incluídos no cálculo da média.
Quer utilize a função DMédia numa macro ou módulo, numa expressão de consulta ou num controlo calculado, tem de construir cuidadosamente o argumento critérios para se certificar de que será avaliado corretamente.
Pode utilizar a função DMédia 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 de encomenda média. 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 DMédia dentro de um campo de expressão calculado numa consulta ou na linha Atualizar Para de uma consulta atualização.
Nota
Pode utilizar a função DMédia ou Média numa expressão de campo calculado numa consulta de totais. Se utilizar a função DMédia , calcula-se a média dos valores antes de os dados serem agrupados. Se utilizar a função Média , os dados são agrupados antes de os valores no campo de expressão calcularem a média.
Utilize a função DMédia num controlo calculado quando precisa de especificar critérios para restringir o intervalo de dados no qual a função DMédia é executada. Por exemplo, para exibir o custo médio de frete para remessas enviadas para a Califórnia, defina a propriedade ControlSource de uma caixa de texto com a seguinte expressão:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Se quiser simplesmente obter a média de todos os registos no domínio, utilize a função Média .
Pode utilizar a função DMédia 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 na qual o seu 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 cliente específico. Pode utilizar a função DMédia para efetuar este cálculo e apresentar os dados no formulário.
Sugestões
- Se utilizar a função DMédia num controlo calculado, recomendamos que coloque o controlo no cabeçalho ou rodapé do formulário de modo a que o valor deste controlo não seja recalculado sempre que se mover para um novo registo.
- Se o tipo de dados do campo do qual expr é derivado for um número, a função DMédia devolve um tipo de dados Duplo. Se utilizar a função DMédia num controlo calculado, inclua uma função de conversão de tipo de dados na expressão para melhorar o desempenho.
- Apesar de poder utilizar a função DMédia para determinar a média dos valores num campo numa tabela com chave externa, pode ser mais eficiente criar uma consulta que contém todos os campos de que necessita e, em seguida, basear o seu formulário ou relatório nessa consulta.
Nota
As alterações não guardadas aos registos no domínio não são incluídas quando utiliza esta função. Se pretende que a função DMédia seja baseada nos valores alterados, tem primeiro de guardar as alterações ao clicar em Guardar Registo em Registos no separador Dados , mover o foco para outro registo ou 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 seguinte função devolve o custo médio do transporte para encomendas enviadas numa data específica ou após esta data. O domínio é uma tabela Encomendas. O argumento critérios restringe o conjunto resultante de registos com base num dado país/região e data de envio. Tenha em atenção que a palavra-chave E está incluída na cadeia de carateres para separar os vários campos no argumento critérios . Todos os registos incluídos no cálculo da função DMédia 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#