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 que estão 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 controle calculado.

Por exemplo, pode utilizar a função BDContar num módulo para devolver o número de registos numa tabela Encomendas que correspondem às encomendas feitas numa data específica.

Sintaxe

DCount ( expr , domínio [, critérios] )

A sintaxe da função BDContar tem estes argumentos:

Argumento

Descrição

expr

Obrigatório. Uma expressão que identifica o campo para o qual pretende contar registos. Pode ser um expressão de cadeia de caracteres identificar um campo numa tabela ou consulta, ou pode ser uma expressão que efetua um cálculo nos dados nesse campo. No expr, pode incluir o nome de um campo numa tabela, um controlo num formulário, uma constante ou uma função. Se expr incluir uma função, pode ser incorporada ou definida pelo utilizador, mas não 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 constitui o domínio. Pode ser um nome de tabela ou um nome de consulta para uma consulta que não requer 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, os critérios são muitas vezes equivalentes à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, a função BDContar avalia expr em relação a todo o domínio. Qualquer campo incluído nos critérios também tem de ser um campo no domínio; caso contrário, a função BDContar devolve um Valor Nulo.

Comentários

Utilize a função BDContar para contar o número de registos num domínio quando não precisar de saber os respetivos valores específicos. Embora o argumento expr possa efetuar um cálculo num campo, a função BDContar simplesmente contabiliza o número de registos. O valor de qualquer cálculo efetuado pelo expr não está disponível.

Utilize a função BDContar num controlo calculado quando precisar 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 enviar para a Califórnia, defina a propriedade ControlSource de uma caixa de texto para a seguinte expressão:

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

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

Dica A função Contar foi otimizada para acelerar a contagem de registos em consultas. Utilize a função Contar numa expressão de consulta em vez da função BDContar e defina critérios opcionais para impor quaisquer restrições aos 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 que contêm um campo específico que não está na origem de registos na qual o seu formulário ou relatório se baseia. Por exemplo, pode apresentar o número de encomendas na tabela Encomendas num controlo calculado num formulário baseado na tabela Produtos.

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

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

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

Se expr identificar vários campos, separe os nomes dos campos com um operador de concatenação, 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 exemplo seguinte demonstra os efeitos de cada operador quando utilizado com um campo que contém dados em todos os registos (ShipName) e um campo que não contém dados (ShipRegion).

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

Observação:  O e comercial é o operador preferencial para efetuar a concatenação de cadeias. Deve evitar utilizar o operador de adição para qualquer outra adição que não seja uma adição numérica, a menos que pretenda especificamente propagar Nulos através de uma expressão.

As alterações não guardadas aos registos no domínio não são incluídas quando utiliza esta função. Se quiser que a função BDContar se baseie nos valores alterados, primeiro tem de guardar as alterações ao clicar em Guardar Registo em Registos no separador Dados , ao mover o foco para outro registo ou ao utilizar o método Update .

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

Observação: Os exemplos que se seguem demonstram a utilização desta função num módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Programador na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

A função seguinte devolve o número de encomendas enviadas para um país/região especificado 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 chamar 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 assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.