Pode utilizar as funções DMin e DMax para determinar os valores mínimo e máximo num conjunto especificado de registos (um domínio ). Utilize as funções DMin e DMax num módulo VBA (Visual Basic for Applications), um macro, uma expressão de consulta ou um controlo calculado.
Por exemplo, pode utilizar as funções DMin e DMax em controlos calculados num relatório para apresentar as quantidades de encomendas mais pequenas e maiores para um determinado cliente. Em alternativa, pode utilizar a função DMin numa expressão de consulta para apresentar todas as encomendas com um desconto superior ao desconto mínimo possível.
Sintaxe
DMin ( expr , domínio [, critérios] )
DMax ( expr , domínio [, critérios] )
As funções DMin e DMax têm estes argumentos:
Argumento |
Descrição |
---|---|
expr |
Obrigatório. Uma expressão que identifica o campo para o qual pretende localizar o valor mínimo ou máximo. 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 DMin ou DMax é executada. Por exemplo, o argumento critérios é muitas vezes equivalente à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, as funções DMin e DMax avaliam 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, as funções DMin e DMax devolvem um Nulo. |
Observações
As funções DMin e DMax devolvem os valores mínimos e máximos que satisfazem os critérios. Se expr identificar dados numéricos, as funções DMin e DMax devolvem valores numéricos. Se expr identificar dados de cadeia, devolvem a cadeia que é a primeira ou a última alfabeticamente.
As funções DMin e DMax ignoram valores Nulos no campo referenciado por expr. No entanto, se nenhum registo satisfizer os critérios ou se o domínio não contiver registos, as funções DMin e DMax devolvem um Valor Nulo.
Quer utilize a função DMin ou DMax numa macro, módulo, expressão de consulta ou controlo calculado, tem de construir cuidadosamente o argumento critérios para garantir que será avaliado corretamente.
Pode utilizar a função DMin e DMax para especificar critérios na linha Critérios de uma consulta, numa expressão de campo calculado numa consulta ou na linha Atualizar Para de um consulta Atualização.
Nota: Pode utilizar as funções DMin e DMax ou as funções Min e Max numa expressão de campo calculado de um consulta de totais. Se utilizar a função DMin ou DMax , os valores são avaliados antes de os dados serem agrupados. Se utilizar a função Min ou Max , os dados são agrupados antes de os valores na expressão de campo serem avaliados.
Utilize a função DMin ou DMax 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 transporte máximo cobrado por uma encomenda enviada para a Califórnia, defina a propriedade OrigemDoControlo de uma caixa de texto para a seguinte expressão:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Se quiser simplesmente localizar o valor mínimo ou máximo de todos os registos no domínio, utilize a função Mín . ou Máx .
Pode utilizar a função DMin ou DMax num módulo ou macro ou num controlo calculado num formulário se o campo que precisa de apresentar não estiver na origem de registos em que o formulário se baseia.
sugestão
Embora possa utilizar a função DMin ou DMax para localizar o valor mínimo ou máximo de um campo num tabela com chave externa, pode ser mais eficiente criar uma consulta que contenha os campos de que precisa em ambas as tabelas e basear o formulário ou relatório nessa consulta.
Nota: As alterações não guardadas aos registos no domínio não são incluídas quando utiliza estas funções. Se pretender que a função DMax ou DMin 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 Atualizar .
Exemplo
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 como 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 exemplo seguinte devolve os valores mais baixos e mais altos do campo Transporte para encomendas enviadas para o Reino Unido. O domínio é uma tabela Encomendas. O argumento critérios restringe o conjunto resultante de registos àqueles para os quais ShipCountryRegion é igual a UK.
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
No exemplo seguinte, o argumento critérios inclui o valor atual de uma caixa de texto denominada OrderDate. A caixa de texto está vinculada a um campo OrderDate numa tabela Encomendas. Tenha em atenção que a referência ao controlo não está incluída nas aspas duplas (") que denotam as cadeias. Isto garante que sempre que a função DMax é chamada, o Access obtém o valor atual a partir do controlo.
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
No exemplo seguinte, a expressão de critérios inclui uma variável, dteOrderDate. Tenha em atenção que os sinais de número (#) estão incluídos na expressão de cadeia, para que, quando as cadeias forem concatenadas, coloquem a data entre elas.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")