Pode utilizar a função DMédia para calcular a média de um conjunto de valores num conjunto de registos especificado (um domínio (domínio: conjunto de registos definido por uma tabela, consulta ou expressão SQL. As funções de agregação de domínio devolvem informações estatísticas sobre um domínio específico ou um conjunto de registos.)). Utilize a função DMédia num módulo do Visual Basic for Applications (VBA), numa macro (macro: acção ou conjunto de acções que podem ser utilizadas para automatizar tarefas. As macros são gravadas na linguagem de programação Visual Basic for Applications.), numa expressão de consulta ou 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.).
Por exemplo, poderá utilizar a função DMédia na linha de critérios de uma consulta selecção de custos de transporte para restringir os resultados aos registos em que os custos de transporte excedem a média. Ou poderá utilizar uma expressão que inclua a função DMédia num controlo calculado e apresente 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 de que pretende calcular a média. Pode ser uma expressão de 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.) que identifique um campo numa tabela ou consulta ou uma expressão que efectue um cálculo dos dados nesse campo. No argumento expr, pode incluir o nome de um campo numa tabela, um controlo num formulário, uma constante ou uma função. Se o argumento expr incluir uma função, esta pode ser incorporada ou definida pelo utilizador, mas não outra função de domínio agregado ou de agregação SQL. |
| domínio |
Obrigatório. Uma expressão da cadeia que identifica o conjunto de registos que constituem o domínio. Pode ser o nome de uma tabela ou consulta para uma consulta que não necessite de um parâmetro. |
| critérios |
Opcional. Uma expressão da cadeia utilizada para restringir o intervalo de dados em que a função DMédia é executada. Por exemplo, o argumento critérios é frequentemente equivalente à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se omitir o argumento critérios, a função DMédia avalia o argumento expr em relação a todo o domínio. Qualquer campo incluído em critérios também tem de ser um campo em domínio; caso contrário, a função DMédia devolve um valor Nulo (Null: valor que pode introduzir num campo ou utilizar em expressões ou consultas para indicar dados em falta ou desconhecidos. No Visual Basic, a palavra-chave Null indica um valor nulo (Null). Alguns campos, tais como campos de chave primária, não podem conter um valor Null.). |
Observações
Os registos que contenham valores Nulo não são incluídos no cálculo da média.
Se utilizar a função DMédia numa macro ou módulo, numa expressão de consulta ou num controlo calculado, terá de construir cuidadosamente o argumento critérios para garantir que o mesmo é avaliado correctamente.
Pode utilizar a função DMédia para especificar os critérios na linha Critérios de uma consulta. Por exemplo, imagine que pretende ver uma lista de todos os produtos encomendados em quantidades acima da quantidade média das encomendas. Poderá criar uma consulta com base nas tabelas de 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("[Quantidade]", "Encomendas")
Também pode utilizar a função DMédia numa expressão de campo calculado numa consulta ou na linha Actualizar Para de uma consulta de actualização (consulta Actualizar: consulta de acção (instrução SQL) que altera um conjunto de registos de acordo com os critérios (condições de procura) especificados pelo utilizador.).
Nota Pode utilizar a função DMédia ou Média numa expressão de campo calculado numa consulta de totais (consulta de totais: consulta que apresenta um cálculo sumário, tal como uma média ou uma soma, para valores existentes em vários campos de uma ou mais tabelas. Uma consulta de totais não é um tipo separado de consulta; pelo contrário, pois permite expandir a flexibilidade das consultas de selecção.). Se utilizar a função DMédia, a média dos valores é calculada antes de os dados serem agrupados. Se utilizar a função Média, os dados são agrupados antes de a média dos valores ser calculada na expressão do campo.
Utilize a função DMédia num controlo calculado quando necessitar de especificar critérios para restringir o intervalo de dados em que a função DMédia é executada. Por exemplo, para visualizar o custo médio de transporte de mercadorias para o Porto, defina a propriedade OrigemDoControlo de uma caixa de texto com a seguinte expressão:
=DAvg("[Frete]", "Encomendas", "[RegiãoDeEnvio] = 'CA'")
Se pretender simplesmente calcular 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, numa macro ou num controlo calculado num formulário, se um campo que necessite de visualizar não se encontrar na origem de um registo em que o formulário se baseie. Por exemplo, imagine 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 efectuar este cálculo e apresentar os dados no formulário.
Sugestões
- Se utilizar a função DMédia num controlo calculado, poderá colocar o controlo no cabeçalho ou rodapé do formulário de forma a que o valor do mesmo não seja recalculado sempre que passar para um novo registo.
- Se o tipo de dados do campo, a partir do qual o argumento expr é derivado, for um número, a função DMédia devolve um tipo de dados Duplo (tipo de dados Duplo: tipo de dados fundamental que contém números de vírgula flutuante de dupla precisão. É armazenado como um número de 64 bits com um valor entre cerca de -1,797E308 e -4,940E-324 (negativo), entre 4,94E-324 e 1,797E308 (positivo) e 0.). Se utilizar a função DMédia num controlo calculado, inclua uma função de conversão do tipo de dados na expressão para melhorar o desempenho.
- Embora possa utilizar a função DMédia para determinar a média de valores num campo numa tabela externa (tabela com chave externa: tabela (por exemplo, Encomendas do Cliente) que contém um campo com chave externa (por exemplo, IDDoCliente), que é o campo de chave primária noutra tabela (por exemplo, Clientes) da base de dados e que está, normalmente, no lado "muitos" de uma relação um-para-muitos.), poderá ser mais eficaz criar uma consulta que contenha todos os campos de que necessita e, em seguida, basear o formulário ou relatório nessa consulta.
Nota As alterações não guardadas de registos no domínio não são incluídas quando utilizar esta função. Se pretender que a função DMédia se baseie nos valores alterados, primeiro tem de guardar as alterações clicando em Guardar Registo em Registos no separador Dados, movendo o foco para outro registo ou utilizando o método Actualizar.
Exemplo
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.
A função seguinte devolve o custo médio de transporte de encomendas expedidas em ou após 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 e data do envio especificados. Note que a palavra-chave E está incluída na cadeia para separar os diversos 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 = DMédia("[Frete]", "Encomendas", _
"[PaísRegiãoDeDestino] = '" & strCountryRegion & _
"'AND [DataDeEnvio] >= #" & dteShipDate & "#")
End Function
Para chamar a função, utilize a seguinte linha de código na janela Immediate:
:AvgFreightCost "RU", #1/1/96#