È possibile usare le funzioni DMin e DMax per determinare i valori minimo e massimo in un set di record specificato (un dominio). Usare le funzioni DMin e DMax in un modulo di Visual Basic, Applications Edition (VBA), una macro, un'espressione di query o un controllo calcolato.
Ad esempio, è possibile usare le funzioni DMin e DMax in controlli calcolati in un report per visualizzare gli importi minimi e massimi per un cliente particolare. È possibile usare la funzione DMin anche in un'espressione di query per visualizzare tutti gli ordini con uno sconto maggiore dello sconto minimo possibile.
Sintassi
DMin ( espr , dominio [, criteri] )
DMax ( espr , dominio [, criteri] )
Le funzioni DMin e DMax hanno gli argomenti seguenti:
Argomento |
Descrizione |
---|---|
espressione |
Obbligatorio. Espressione che identifica il campo per cui si vuole trovare il valore minimo o massimo. Può essere un'espressione stringa che identifica un campo in una tabella o una query oppure un'espressione che esegue un calcolo sui dati del campo. In espr è possibile includere il nome di un campo di una tabella, un controllo di una maschera, una costante o una funzione. Se espr include una funzione, questa può essere una funzione predefinita o definita dall'utente, ma non un'altra funzione di aggregazione sui domini o una funzione di aggregazione SQL. |
dominio |
Obbligatorio. Un'espressione di stringa che identifica il set di record che costituisce il dominio. Può essere un nome di una tabella o di una query che non richiede un parametro. |
criteri |
Facoltativo. Espressione stringa usata per limitare l'intervallo di dati su cui viene eseguita la funzione DMin o DMax. Ad esempio, criteri equivale spesso alla clausola WHERE in un'espressione SQL, senza la parola WHERE. Se criteri viene omesso, le funzioni DMin e DMax valutano espr rispetto all'intero dominio. Qualsiasi campo incluso in criteri deve essere anche un campo in dominio; in caso contrario, le funzioni DMin e DMax restituiscono un valore Null. |
Osservazioni
Le funzioni DMin e DMax restituiscono i valori minimo e massimo che soddisfano criteri. Se espr identifica dati numerici, le funzioni DMin e DMax restituiscono valori numerici. Se espr identifica dati di tipo stringa, i dati restituiscono la stringa che è la prima o l'ultima in ordine alfabetico.
Le funzioni DMin e DMax ignorano i valori Null nel campo cui fa riferimento espr. Tuttavia, se nessun record soddisfa criteri o se dominio non contiene record, le funzioni DMin e DMax restituiscono un valore Null.
Indipendentemente dal fatto che la funzione DMin o DMax venga usata in una macro, un modulo, un'espressione di query o un controllo calcolato, è necessario specificare con attenzione l'argomento criteri per garantire che venga valutato correttamente.
È possibile usare le funzioni DMin e DMax per specificare criteri nella riga Criteri di una query, in un'espressione con campi calcolati in una query o nella riga Aggiorna a di una query di aggiornamento.
Nota: È possibile usare le funzioni DMin e DMax o le funzioni Min e Max in un'espressione con campi calcolati di una query di totalizzazione. Se si usa la funzione DMin o DMax, i valori vengono valutati prima del raggruppamento dei dati. Se si usa la funzione Min o Max, i dati vengono raggruppati prima della valutazione dei valori nell'espressione di campo.
Usare la funzione DMin o DMax in un controllo calcolato quando è necessario specificare criteri per limitare l'intervallo di dati su cui viene eseguita la funzione. Ad esempio, per visualizzare il carico massimo per un ordine spedito in California, impostare la proprietà .OrigineControllo di una casella di testo sull'espressione seguente:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Se si vuole semplicemente calcolare il valore minimo o massimo di tutti i record in dominio, usare la funzione Min o Max.
È possibile usare la funzione DMin o DMax in un modulo o una macro o in un controllo calcolato in una maschera se il campo che deve essere visualizzato non è incluso nell'origine del record su cui è basata la maschera.
Suggerimento
Benché sia possibile usare la funzione DMin o DMax per calcolare il valore minimo o massimo da un campo in una tabella della chiave esterna, può risultare più efficiente creare una query contenente i campi necessari da entrambe le tabelle e basare la maschera o il report su questa query.
Nota: Le modifiche non salvate apportate ai record in dominio non vengono incluse quando si usano queste funzioni. Se si vuole che la funzione DMax o DMin sia basata sui valori modificati, è prima necessario salvare le modifiche facendo clic su Salva il record in Record nella scheda Dati, spostando lo stato attivo su un altro record oppure usando il metodo Update.
Esempio
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
L'esempio seguente restituisce i valori minimo e massimo del campo relativo al carico per gli ordini spediti in Regno Unito. Il dominio è una tabella degli ordini. L'argomento criteri limita il set di record risultante a quelli per cui il paese di spedizione è il Regno Unito.
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Nell'esempio successivo l'argomento criteri include il valore corrente di una casella di testo chiamata OrderData. La casella di testo è associata a un campo OrderData di una tabella degli ordini. Si noti che il riferimento al controllo non è incluso tra le virgolette doppie (") che denotano le stringhe. In questo modo, ogni volta che viene chiamata la funzione DMax , Access ottiene il valore corrente dal controllo.
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
Nell'esempio seguente l'espressione criterio include una variabile, dteOrderDate. Si noti che nell'espressione stringa sono inclusi cancelletti (#), in modo da racchiudere la data quando le stringhe sono concatenate.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")