Você pode usar a função BDContar para determinar o número de registros que estão em um conjunto de registros especificado (um domínio). Use a função DCount em um módulo do Visual Basic for Applications (VBA), uma macro, uma expressão de consulta ou um controle calculado.
Por exemplo, você pode usar a função DCount em um módulo para retornar o número de registros em uma tabela Pedidos que correspondem aos pedidos feitos em uma data específica.
Sintaxe
DCount(expr, domain* [, criteria] )
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 você deseja contar registros. Pode ser uma expressão de cadeia de caracteres identificando um campo em uma tabela ou consulta, ou pode ser uma expressão que executa um cálculo nos dados desse campo. Em expr, você pode incluir o nome de um campo em uma tabela, um controle em um formulário, uma constante ou uma função. Se expr incluir uma função, ela poderá ser interna ou definida pelo usuário, mas não outra função de agregação de domínio ou agregação SQL. |
| domínio | Obrigatório. Uma expressão de cadeia de caracteres que identifica o conjunto de registros 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 de caracteres usada para restringir o intervalo de dados no qual a função DCount é executada. Por exemplo, criteria geralmente é equivalente à cláusula WHERE em uma expressão SQL, sem a palavra WHERE. Se criteria for omitido, a função DCount avaliará expr em relação a todo o domínio. Qualquer campo incluído nos critérios também deve ser um campo no domínio; caso contrário, a função DCount retornará um Null. |
Comentários
Use a função BDContar para contar o número de registros em um domínio quando você não precisar saber seus valores específicos. Embora o argumento expr possa realizar um cálculo em um campo, a função DCount simplesmente registra o número de registros. O valor de qualquer cálculo realizado por expr não está disponível.
Use a função DCount em um controle calculado quando precisar especificar critérios para restringir o intervalo de dados no qual a função é executada. Por exemplo, para exibir o número de pedidos a serem enviados para a Califórnia, defina a propriedade ControlSource de uma caixa de texto como a seguinte expressão:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Se você quiser simplesmente contar todos os registros no domínio sem especificar restrições, use a função Contagem .
Dica A função Count foi otimizada para acelerar a contagem de registros em consultas. Use a função Count em uma expressão de consulta em vez da função DCount e defina critérios opcionais para impor restrições aos resultados. Use a função DCount quando precisar contar registros em um domínio de dentro de um módulo de código ou macro ou em um controle calculado.
Você pode usar a função BDContar para contar o número de registros que contêm um campo específico que não está na fonte de registro na qual o formulário ou relatório se baseia. Por exemplo, você pode exibir o número de pedidos na tabela Pedidos em um controle calculado em um formulário com base na tabela Produtos.
A função DCount não conta registros que contêm valores Nulos no campo referenciado por expr , a menos que expr seja o caractere curinga asterisco (*). Se você usar um asterisco, a função BDContar calculará o número total de registros, incluindo aqueles que contêm campos Nulo . O exemplo a seguir calcula o número de registros em uma tabela Pedidos.
intX = DCount("*", "Orders")
Se domain for uma tabela com uma chave primária, você também poderá contar o número total de registros definindo expr como o campo de chave primária, já que nunca haverá um Null no campo de chave primária.
Se expr identificar vários campos, separe os nomes de campo com um operador de concatenação, um e comercial (&) ou o operador de adição (+). Se você usar um e comercial para separar os campos, a função BDContar retornará o número de registros que contêm dados em qualquer um dos campos listados. Se você usar o operador de adição, a função BDContar retornará apenas o número de registros que contêm dados em todos os campos listados. O exemplo a seguir demonstra os efeitos de cada operador quando usado com um campo que contém dados em todos os registros (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 realizar a concatenação de strings. Você deve evitar usar o operador de adição para qualquer coisa que não seja a adição numérica, a menos que deseje especificamente propagar Nulls por meio de uma expressão.
As alterações não salvas nos registros do domínio não são incluídas quando você usa esta função. Se você quiser que a função BDContar se baseie nos valores alterados, primeiro salve as alterações clicando em Salvar Registro em Registros na guia Dados , movendo o foco para outro registro ou usando 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"); | Retorna a contagem de valores no campo "IDProduto" da tabela "VendasDoProduto" onde o valor "Desconto" é "0". |
| SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); | Retorna a contagem de valores no campo "IDProduto" da tabela "VendasProdutos" em que "DatadeVenda" é um dia antes da data atual. |
Exemplo de VBA
Observação
Os exemplos a seguir demonstram o uso dessa função em um módulo do Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.
A função a seguir retorna o número de pedidos enviados para um país/região especificado após uma data de remessa especificada. O domínio é uma tabela Pedidos.
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, use a seguinte linha de código na janela Imediata:
:OrdersCount "UK", #1/1/96#