Função DContar

Pode utilizar a função BDContar para determinar o número de registos num conjunto especificado de registos (um domínio). Utilize a função BDContar 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 BDContar num módulo para devolver o número de registos numa tabela de Encomendas correspondente às encomendas efetuadas numa data específica.

Sintaxe

BDContar ( expr , domínio [, critério] )

A sintaxe da função BDContar tem os seguintes argumentos:

Argumento

Descrição

expr

Obrigatório. Uma expressão que identifica o campo para o qual pretende contar registos. 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ério

Opcional. Uma expressão de cadeia utilizada para restringir o intervalo de dados no qual a função BDContar é 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ériosfor omitido, a função BDContar avalia o 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 BDContar devolve um resultado Nulo.

Observações

Utilize a função BDContar para contar o número de registos num domínio quando não precisa de saber os valores específicos. Apesar de o argumento expr poder efetuar um cálculo num campo, a função BDContar limita-se a contabilizar o número de registos. O valor de qualquer cálculo executado pelo expr está indisponível.

Utilize a função BDContar em controlos calculados, quando precisa de especificar critérios para restringir o intervalo de dados no qual a função é executada. Por exemplo, para apresentar o número de encomendas a entregar na Califórnia, defina a propriedade OrigemDoControlo de uma caixa de texto para a seguinte expressão:

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

Se quiser apenas contar todos os registos no domínio sem especificar restrições, utilize a função Contar.

Sugestão A função Contar foi otimizada para tornar a contagem de registos em consultas mais rápida. Utilize a função Contar numa expressão de consulta em vez da função BDContar e defina critérios opcionais para impor restrições nos resultados. Utilize a função BDContar quando tiver de contar registos num domínio a partir de um módulo de código ou macro ou num controlo calculado.

Pode utilizar a função BDContar para contar o número de registos com um campo específico não presente na origem do registo na qual o seu formulário ou relatório se baseia. Por exemplo, pode mostrar o número de encomendas na tabela Encomendas de um controlo calculado num formulário com base na tabela Produtos.

A função BDContar não conta registos com valores Nulos no campo referenciado pelo expr a menos que o expr seja o caráter universal de asterisco (*). Se utilizar um asterisco, a função BDContar calcula o número total de registos, incluindo aqueles que contêm campos Nulos. O exemplo seguinte calcula o número de registos numa tabela de Encomendas.

intX = DCount("*", "Orders")

Se o domínio for uma tabela com uma chave primária, também pode contar o número total de registos ao definir o expr como o campo de chave primária, pois nunca haverá um Nulo no campo de chave primária.

Se o expr identificar múltiplos campos, separe os nomes dos campos com um operador de concatenação, seja um E comercial (&) ou o operador de adição (+). Se utilizar um E comercial para separar os campos, a função BDContar devolve o número de registos que contêm dados em qualquer um dos campos listados. Se utilizar o operador de adição, a função BDContar devolve apenas o número de registos que contêm dados em todos os campos listados. O seguinte exemplo demonstra os efeitos de cada operador quando utilizado com um campo que contém dados em todos os registos (NomeEncomenda) e um campo que não contém dados (RegiãoEncomenda).

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

Nota:  O E comercial é o operador preferencial para executar a concatenação de cadeias. Deverá evitar utilizar o operador de adição para ações que não a adição numérica, a menos que pretenda especificamente propagar Nulos numa expressão.

As alterações não guardadas aos registos em domínio não são incluídas quando utiliza esta função. Se pretende que a função BDContar 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 de Atualizaçãoo.

Exemplos de consulta

Expressão

Resultados

Selecione DContar ("CódigoDoProduto", "ProductSales"; "desconto = 0") como expr1 do ProductSales GROUP BY DContar ("CódigoDoProduto", "ProductSales"; "desconto = 0");

Devolve a contagem de valores no campo "CódigoDoProduto" da tabela "ProductSales" onde o valor de "desconto" é "0".

Selecione DContar ("CódigoDoProduto", "ProductSales", "DateofSale = data ()-1") como YesterdaySale de ProductSales grupo por DContar ("CódigoDoProduto"; "ProductSales"; "DateofSale = data ()-1");

Devolve a contagem de valores no campo "CódigoDoProduto" da tabela "ProductSales" onde "DateofSale" é um dia antes da data atual.

Exemplo de VBA

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 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 número de encomendas enviadas para um país/região específico após uma data de envio especificada. O domínio é uma tabela Encomendas.

Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

Para apresentar a função, utilize a seguinte linha de código na janela Imediato:

:OrdersCount "UK", #1/1/96#

Nota:  Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode indicar-nos se estas informações foram úteis? Eis o artigo em inglês para sua referência.​

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×