Pode utilizar a função BDSOMA para calcular a soma de diversos valores de um conjunto específico de registos (um domínio). Utilize a função BDSOMA num módulo VBA (Visual Basic for Applications), numa macro, numa expressão de consulta ou num controlo calculado.
Por exemplo, pode utilizar a função BDSOMA numa expressão de campo calculado numa consulta para calcular o total de vendas efetuadas por um funcionário específico ao longo de um período de tempo. Em alternativa, pode utilizar a função BDSOMA num controlo calculado para apresentar uma soma parcial de vendas de um produto específico.
Sintaxe
BDSOMA ( expr , domínio [, critérios] )
A sintaxe da função BDSOMA tem os seguintes argumentos:
Argumento |
Descrição |
expr |
Obrigatório. Uma expressão que identifica o campo numérico cujos valores quer totalizar. 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ção BDSOMA é executada. Por exemplo, o argumento critérios é muitas vezes equivalente à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se o argumento critérios for omitido, a função BDSOMA avalia a expr em comparação com o domínio completo. Qualquer campo incluído no argumento critérios também tem de ser um campo em domínio; caso contrário, a função BDSOMA devolve um resultado Nulo. |
Observações
Se nenhum registo se adequar ao argumento critérios ou se o domínio não contiver nenhum registo, a função BDSOMA devolve um resultado Nulo.
Quer utilize a função BDSOMA numa macro, módulo, expressão de consulta ou controlo calculado, tem de construir cuidadosamente o argumento critérios para se certificar de que será avaliado corretamente.
Pode utilizar a função BDSOMA para especificar critérios na linha Critérios de uma consulta, num campo calculado de uma expressão de consulta ou na linha Atualizar Para de uma consulta Atualização.
Nota: Pode utilizar a função BDSOMA ou SOMA num campo de expressão calculado de uma consulta de totais. Se utilizar a função BDSOMA, os valores são calculados antes de os dados serem agrupados. Se utilizar a função SOMA, os dados são agrupados antes de os valores no campo de expressão serem avaliados.
É recomendável utilizar a função BDSOMA quando precisar de apresentar a soma de um conjunto de valores de um campo que não está na origem de registos do seu formulário ou relatório. Por exemplo, imaginemos que tem um formulário que apresenta informações sobre um produto específico. Pode utilizar a função BDSOMA para gerir um total parcial de vendas desse produto num controlo calculado.
sugestão
Se precisar de gerir um total parcial de um controlo num relatório, pode utilizar a propriedade TotalParcial desse controlo, se o campo no qual está baseado estiver incluído na origem de registos desse relatório. Utilize a função BDSOMA para gerir a soma parcial num formulário.
Nota: As alterações não guardadas aos registos em domínio não são incluídas quando utiliza esta função. Se quiser que a função BDSOMA seja baseada nos valores alterados, primeiro tem de guardar as alterações ao clicar em Guardar Registo no grupo Registos no separador Base, mover o foco para outro registo ou utilizar o método Atualizar.
Exemplos
Utilizar a função BDSOMA numa expressão Pode utilizar uma função de domínio (como BSDOMA) na linha Atualizar Para de uma consulta atualização. Por exemplo, suponhamos que pretende monitorizar as vendas atuais por produto na tabela Produtos. Pode adicionar um novo campo chamado VendasAtéAgora na tabela Produtos e executar uma consulta atualização para calcular os valores corretos e atualizar os registos. Para fazer isto, crie uma nova consulta com base na tabela Produtos e, no separador Estrutura, no grupo Tipo de Consulta, clique em Atualizar. Adicione o campo VendasAtéAgora à grelha da consulta e introduza o seguinte na linha Atualizar Para:
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Quando executar a consulta, o Access calcula o montante total de vendas para cada produto, com base nas informações de uma tabela Detalhes de Encomenda. A soma das vendas de cada produto é adicionada à tabela Produtos.
Utilizar BDSOMA em código VBA
Nota: Os seguintes exemplos demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre 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.
O seguinte exemplo soma o total dos valores do campo Transporte para encomendas enviadas para o Reino Unido. O domínio é uma tabela Encomendas. O argumento critérios restringe o conjunto de resultados de registos para os quais EnviarPaísRegião é igual a Reino Unido.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
O próximo exemplo calcula um total através de dois critérios em separado. Tenha em atenção que plicas (') e cardinais (#) estão incluídos na expressão da cadeia, para que quando as cadeias forem concatenadas, a cadeia literal esteja entre plicas e a data esteja entre cardinais.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK' AND _ [ShippedDate] > #1-1-95#")