È possibile usare la funzione DB.SOMMA per calcolare la somma di una serie di valori in un determinato set di record (un dominio). La funzione DB.SOMMA può essere usata in un modulo di Visual Basic, Applications Edition (VBA), in una macro, in un'espressione di query o in un controllo calcolato.
Ad esempio, è possibile usare la funzione DB.SOMMA in un'espressione di campo calcolato in una query per calcolare i totale delle vendite effettuate da un determinato dipendente in un determinato periodo di tempo. In alternativa, si può usare una funzione DB.SOMMA in un controllo calcolato per visualizzare una somma parziale delle vendite di un particolare prodotto.
Sintassi
DB.SOMMA ( espr , dominio [, criteri] )
Gli argomenti della sintassi della funzione DB.SOMMA sono i seguenti:
Argomento |
Descrizione |
espressione |
Obbligatorio. Espressione che identifica il campo numerico di cui si vuole sommare i valori. Può essere un'espressione stringa che identifica un campo in una tabella o in una query oppure un'espressione che esegue un calcolo sui dati di tale 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, può essere predefinita o definita dall'utente, ma non può essere un'altra funzione di aggregazione sui domini o 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 di stringa usata per restringere l'intervallo di dati su cui viene eseguita la funzione DB.SOMMA. Ad esempio, l'argomento criteri è spesso equivalente alla clausola WHERE di un'espressione SQL, senza la parola WHERE. Se i criteri vengono omessi, la funzione DB.SOMMA valuta espr sull'intero dominio. Qualsiasi campo incluso in criteri deve essere anche un campo di dominio; in caso contrario, la funzione DB.SOMMA restituisce Null. |
Osservazioni
Se nessun record soddisfa l'argomento criteri oppure se il dominio non contiene record, la funzione DB.SOMMA restituisce Null.
Indipendentemente dal fatto che la funzione DB.SOMMA venga usata in una macro, in un modulo, in un'espressione di query o in un controllo calcolato, è necessario specificare con attenzione l'argomento criteri per assicurarsi che venga valutata correttamente.
È possibile usare la funzione DB.SOMMA per specificare criteri nella riga Criteri di una query, all'interno di un campo calcolato in un'espressione di query oppure nella riga Aggiorna a in una query di aggiornamento.
Nota: È possibile usare la funzione DB.SOMMA o SOMMA in un'espressione di campo calcolato in una query di totalizzazione. Se si usa la funzione DB.SOMMA, i valori vengono calcolati prima del raggruppamento dei dati. Se si usa la funzione SOMMA, i dati vengono raggruppati prima della valutazione dei valori nell'espressione di campo.
Può essere utile usare la funzione DB.SOMMA per visualizzare la somma di un set di valori di un campo non incluso nell'origine record per la maschera o il report. Si supponga, ad esempio, di avere una maschera in cui vengono visualizzate le informazioni su un determinato prodotto. Con la funzione DB.SOMMA si può mantenere visualizzato il totale parziale delle vendite di quel prodotto in un controllo calcolato.
Suggerimento
Per mantenere visualizzato un totale parziale in un controllo di un report, si può usare la proprietà SommaParziale del controllo se il campo su cui è basato il controllo è incluso nell'origine record del report. Per mantenere visualizzato un totale parziale in una maschera, usare la funzione DB.SOMMA.
Nota: Le modifiche non salvate ai record in dominio non vengono incluse quando si usa questa funzione. Se si vuole che la funzione DB.SOMMA sia basata sui valori cambiati, è necessario salvare prima le modifiche facendo clic su Salva il record nel gruppo Record della scheda Home, spostando lo stato attivo su un altro record oppure usando il metodo Update.
Esempi
Usare la funzione DB.SOMMA in un'espressione Si può usare una funzione di dominio, come DB.SOMMA, nella riga Aggiorna a di una query di aggiornamento. Si supponga ad esempio di voler tenere traccia delle vendite attuali per prodotto in una tabella Prodotti. È possibile aggiungere un nuovo campo denominato Vendite attuali alla tabella Prodotti ed eseguire una query di aggiornamento per calcolare i valori corretti e aggiornare i record. A questo scopo, creare una nuova query basata sulla tabella Prodotti e fare clic su Aggiornamento nel gruppo Tipo di query della scheda Struttura. Aggiungere il campo Vendite attuali alla griglia della query e digitare le informazioni seguenti nella riga Aggiorna a:
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Quando si esegue la query, viene calcolato l'importo totale delle vendite per ogni prodotto, in base alle informazioni presenti in una tabella Dettagli ordini. La somma delle vendite per ogni prodotto viene aggiunta alla tabella Prodotti.
Usare DB.SOMMA nel codice VBA
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.
Nell'esempio seguente vengono sommati i valori del campo Costi di spedizione per gli ordini spediti nel Regno Unito. Il dominio è rappresentato da una tabella Ordini. L'argomento criteri consente di limitare il set di record restituiti a quelli in cui paese o l'area geografica di spedizione corrisponde al Regno Unito (UK).
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK'")
Nell'esempio seguente viene calcolato il totale usando due criteri distinti. Si noti che nell'espressione stringa sono inclusi le virgolette singole (') e i simboli di cancelletto (#), per cui quando la stringa viene concatenata, il valore letterale stringa viene racchiuso tra virgolette singole e la data tra i simboli di cancelletto.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _ "[ShipCountryRegion] = 'UK' AND _ [ShippedDate] > #1-1-95#")