Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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érios

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

SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0");

Devolve a contagem de valores no campo "IDDoProduto" da Tabela "VendasDeProdutos" em que o valor "Desconto" é "0".

SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1");

Devolve a contagem de valores no campo "IDDoProduto" da Tabela "VendasDoProduto", em que "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#

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.