campi calcolati in access
Shared by: HC120911032954
-
Stats
- views:
- 90
- posted:
- 9/10/2012
- language:
- Italian
- pages:
- 12
Document Sample


ACCESS - CREARE UN CAMPO CALCOLATO IN UNA QUERY
Il campo calcolato di Access è una funzionalità che permette di eseguire calcoli in un database; questa funzionalità
viene normalmente utilizzata nelle query in cui possono essere relazionate più tabelle; tali campi sono virtuali ma si
comportano come qualsiasi campo di qualsiasi tabella, quindi possono esserne impostate le proprietà in modo che
restituiscano un valore nel formato desiderato (valuta, numero, ecc.) come vedremo in seguito.
La sintassi del campo calcolato è semplice anche se rigida, ciò significa che omettendo una parentesi o scrivendo in
modo errato il nome del campo o dei campi che devono essere calcolati, la query non va in errore, semplicemente
non si ottiene alcun risultato.
Sintassi:
Nome:[nome_campo]*2 oppure Nome:[nome_campo]*[nome_campo2]
Esempio:
Se in un database ho una tabella di articoli e relativo prezzo e devo calcolare una maggiorazione di vendita del 20%
per ogni articolo, creerò all’interno di una query, un campo virtuale che nominerò MAGGIORAZIONE in cui
effettuerò il calcolo come sotto indicato. Definisco il campo calcolato come un campo virtuale, perché fisicamente
non esiste, ma diventa utilizzabile al momento che eseguo la query esattamente come un comune campo di tabella.
Se a partire dalla query creerò un report o una maschera, detto campo verrà visualizzato (se l’opzione “mostra” è
attiva come nell’esempio), ma non saranno modificabili i dati contenuti all’interno; il campo apparirà protetto
perché risponde ad una funzione di calcolo che legge altri campi che, se modificati, influiranno sul contenuto del
campo calcolato.
Definisco il campo calcolato
Se invece volessi ottenere il valore di magazzino per ogni singolo articolo, dovrei creare una query che calcola i
campi “QUANTITA’” e “PREZZO” come di seguito spiegato, facendo sempre molta attenzione a scrivere
correttamente i nomi dei campi da calcolare, altrimenti access mi restituisce una query muta (ossia nessun risultato)
perché in realtà non trova i campi all’interno della tabella dichiarata.
Una volta eseguita la query visualizzerò un risultato di questo tipo.
A questo punto posso modificare alcune impostazioni delle proprietà del campo calcolato in modo che la query mi
restituisca il valore formattato; per esempio in formato valuta euro, ma senza decimali dopo la virgola.
Procedura:
clicco col tasto destro del mouse nella query sul nome del campo calcolato, e nel menu contestuale scelgo l’opzione
“Proprietà”.
All’interno delle Proprietà scelgo Formato e in seguito seleziono Euro
Adesso posso impostare le posizioni decimali uguali a 0.
E’ possibile inserire dei criteri all’interno del campo calcolato per estrapolare e calcolare; per esempio, se nel calcolo
devono essere considerati solo gli articoli di cui c’è una disponibilità di magazzino (Quantità) maggiore di 10 e i
suddetti articoli abbiano un Prezzo uguale o superiore a 20€.
Posso anche inserire criteri multipli, per ogni campo, e utilizzare tutte le funzionalità che normalmente utilizzo nelle
query di selezione, come nell’esempio visualizzato in basso.
E’ possibile, inoltre, aggiungere ulteriori campi calcolati che sviluppano calcoli utilizzando il risultato di un altro
campo calcolato, in pratica è possibile produrre query con campi calcolati che si ricalcolano tra di loro.
Per esempio se volessi calcolare uno SCONTO del 10% da applicare solo in caso di acquisto dell’intera disponibilità
di magazzino di un singolo articolo, si potrebbe aggiungere un nuovo campo calcolato denominato SCONTO, che
utilizza il contenuto del campo calcolato VALORE, su cui si può determinare la percentuale per ottenere lo
SCONTO.
Potrei, infine, strutturare questa query in modo da visualizzare solo un articolo per volta definendo di volta in volta
l’articolo su cui calcolare il prezzo dell’intero stock di magazzino e il relativo sconto del 10%, come nell’esempio
riportato di seguito.
Eseguendo la query otterrei questa finestra di dialogo che mi chiede il parametro:
Digito il parametro “guanti” e ottengo come risultato la tabella sottostante in cui sono contentuti tutti i calcoli
impostati nella query.
In conclusione: all’interno di un database di access posso eseguire ogni sorta di calcolo, semplice o complesso
utilizzando le funzionalità del campo calcolato, posso anche scegliere se visualizzare in tabella il risultato di tali
calcoli oppure no utilizzando il comando mostra nella struttura della query. Posso inoltre modificare le proprietà del
campo calcolato per visualizzare una formattazione adeguata al tipo di calcolo eseguito.
Creare un controllo calcolato
È possibile utilizzare controlli calcolati per visualizzare i risultati di un calcolo. Se, ad esempio, si dispone di
un report in cui sono visualizzati il numero di articoli venduti e il prezzo di ogni unità, è possibile aggiungere
una casella di testo calcolata in cui moltiplicare i due campi per visualizzare il prezzo totale. La proprietà
Origine controllo della casella di testo calcolata contiene un'espressione (espressione: Qualsiasi combinazione
di operatori matematici o logici, costanti, funzioni, nomi di campo, controlli e proprietà che restituisce un valore unico.
Le espressioni possono eseguire un calcolo, modificare caratteri o eseguire dei test su dati.) che moltiplica i due
campi, ovvero il numero di articoli per l'unità di prezzo, per ottenere il risultato.
Creare un controllo calcolato
La procedura descritta di seguito aiuta a creare un controllo calcolato senza utilizzare una Creazione
guidata controllo.
1. Fare clic con il pulsante destro del mouse sulla maschera o sul report nel riquadro di
spostamento e quindi scegliere Visualizzazione Struttura .
2. Nel gruppo Controlli della scheda Struttura fare clic sullo strumento corrispondente al tipo
di controllo che si desidera creare.
Per un elenco dei tipi di controllo utilizzabili come controlli calcolati, vedere la sezione
Informazioni sui tipi di controlli che è possibile utilizzare come controlli calcolati.
3. Posizionare il puntatore del mouse nel punto in cui si desidera inserire il controllo nella
maschera o nel report e quindi fare clic nella maschera o nel report per inserire il controllo.
4. Se viene avviata una Creazione guidata Controllo, fare clic su Annulla per chiuderla.
5. Selezionare il controllo, premere F4 per visualizzare la finestra delle proprietà e quindi
digitare l'espressione nella casella della proprietà Origine controllo. Per creare l'espressione
utilizzando il Generatore di espressioni (Generatore di espressioni: Strumento di Access che
può essere utilizzato per creare un'espressione. Include un elenco di espressioni comuni che
è possibile selezionare.), fare clic su accanto alla casella della proprietà Origine
controllo.
6. Passare in visualizzazione Maschera o Report e verificare il corretto funzionamento del
controllo calcolato.
Note
Anteporre a ogni espressione l'operatore =, ad esempio =[PrezzoUnitario]*0,75.
Se si desidera disporre di ulteriore spazio per digitare un'espressione nella casella della
proprietà Origine controllo, premere MAIUSC+F2 per aprire la finestra Zoom.
Se la maschera o il report è basato su una query, è possibile inserire l'espressione nella query
anziché in un controllo calcolato. In questo modo le prestazioni possono risultare migliorate
e, se si desidera calcolare i totali per gruppi di record, sarà più semplice utilizzare il nome di
un campo calcolato (campo calcolato: Campo, definito in una query, che visualizza il
risultato di un'espressione invece dei dati memorizzati. Il valore viene ricalcolato ogni volta
che viene modificato un valore nell'espressione.) in una funzione di aggregazione (funzione
di aggregazione: Funzione, quale Somma, Conteggio, Media o Var, utilizzata per calcolare i
totali.).
Quando si esegue l'ordinamento in base a un controllo calcolato in una maschera o un
report, verificare che la proprietà Formato del controllo sia impostata in modo corretto. In
caso contrario, i valori numerici e di data calcolati potrebbero essere disposti in ordine
alfabetico anziché numerico.
Creare un campo calcolato in una query (MDB)
Nota Le informazioni in questo argomento sono valide solo per i database di Microsoft Access
(.mdb).
È possibile creare un nuovo campo per la visualizzazione dei risultati di un calcolo definito con
un'espressione (espressione: Qualsiasi combinazione di operatori matematici o logici, costanti,
funzioni, nomi di campo, controlli e proprietà che restituisce un valore unico. Le espressioni
possono eseguire un calcolo, modificare caratteri o eseguire dei test su dati.) o che manipola valori
di campo.
1. Aprire la query in visualizzazione Struttura (visualizzazione Struttura: Finestra che
visualizza la struttura dei seguenti oggetti di database: tabelle, query, maschere, report,
macro e pagine di accesso ai dati. Nella visualizzazione Struttura è possibile creare nuovi
oggetti di database e modificare la struttura di quelli esistenti.).
2. Digitare un'espressione in una cella vuota della riga Campo. Se l'espressione include un
nome di campo, è necessario scrivere il nome tra parentesi quadre.
Dopo aver premuto INVIO o essersi spostati su un'altra cella, verrà immesso il nome di
campo predefinito EsprN, dove N è un numero intero incrementato per ciascun nuovo campo
di espressione della query. Il nome viene visualizzato prima dell'espressione ed è seguito da
due punti. In un foglio dati (foglio dati: Dati di una tabella, maschera, query, vista o stored
procedure visualizzati in formato di righe e colonne.) tale nome è l'intestazione della
colonna.
È possibile sostituire EsprN con un nome più descrittivo, quale PrezzoNuovo.
3. Se l'espressione include una o più funzioni di aggregazione (Somma, Media, Conteggio,
Min, Max, DevSt o Var) e se la griglia di struttura (griglia di struttura: Griglia utilizzata per
strutturare una query o un filtro in visualizzazione Struttura delle query o nella finestra
Ordinamento/filtro avanzato. Per le query, questa griglia era precedentemente detta griglia
QBE.) include un altro campo o altri campi che si desidera utilizzare per eseguire un
raggruppamento, scegliere Totali sulla barra degli strumenti, a meno che non sia già
visualizzata la riga Totale. Lasciare Raggruppamento nella cella Totale per il campo di
raggruppamento e nel campo calcolato (campo calcolato: Campo, definito in una query, che
visualizza il risultato di un'espressione invece dei dati memorizzati. Il valore viene
ricalcolato ogni volta che viene modificato un valore nell'espressione.) cambiare
Raggruppamento con Espressione.
4. Se si desidera, specificare dei criteri per influire sui risultati del calcolo.
Procedura
La posizione in cui vengono specificati i criteri all'interno della griglia di struttura (griglia di
struttura: Griglia utilizzata per strutturare una query o un filtro in visualizzazione Struttura
delle query o nella finestra Ordinamento/filtro avanzato. Per le query, questa griglia era
precedentemente detta griglia QBE.) della query determina il momento in cui vengono
eseguiti i calcoli e può dare luogo a risultati della query diversi.
Nota Benché negli esempi seguenti vengano illustrate solo query che calcolano formule,
queste istruzioni sono valide anche per i campi calcolati (campo calcolato: Campo, definito
in una query, che visualizza il risultato di un'espressione invece dei dati memorizzati. Il
valore viene ricalcolato ogni volta che viene modificato un valore nell'espressione.).
Limitare i gruppi prima di eseguire calcoli relativi a gruppi di record
o Specificare i criteri nei campi Raggruppamento come illustrato nell'esempio
seguente.
Questa query calcola i totali dei prezzi complessivi solo per ...
... le società del Canada e del Regno Unito.
Restituire i risultati selezionati dopo l'esecuzione dei calcoli
o Specificare i criteri nel campo contenente il calcolo come illustrato nell'esempio
seguente.
Questa query calcola i totali dei prezzi complessivi per le società del Canada e del
Regno Unito ...
... ma visualizza solo i totali inferiori a € 10.000.
Limitare i record prima del raggruppamento e dell'esecuzione del calcolo
o Aggiungere alla griglia di struttura il campo di cui si desidera limitare i record e
quindi specificare i criteri nella cella Criteri del campo.
Se si stanno calcolando totali nella stessa query, impostare su Dove la cella Formula
del campo che contiene i criteri. Questa regola si applica se si sta calcolando il totale
su tutti i record o su gruppi di record. La casella di controllo Mostra viene
deselezionata automaticamente.
Nell'esempio riportato di seguito il campo Prezzo complessivo viene utilizzato due
volte, una per limitare i record ed una per calcolare la formula. È possibile tuttavia
utilizzare un campo diverso per limitare i record trascinando quel campo sulla griglia
di struttura ed impostando la relativa cella Formula a Dove.
La query recupera da questi record solo quelli con prezzi complessivi superiori a
€ 500 prima di eseguire il raggruppamento o di calcolare i totali ...
... e quindi esegue la somma e mostra solo i totali relativi alle società del Canada
o del Regno Unito.
Questa formula per la Seven Seas Imports non include l'ordine di € 210.
Note
La query Dettagli ordini complessivi nel database di esempio Northwind riporta un esempio
di un campo calcolato denominato PrezzoComplessivo. La query Subtotale ordini riporta un
esempio di campo calcolato denominato Subtotale che esegue calcoli su gruppi di record.
Per visualizzare tali query, aprire il database Northwind nella sottocartella Samples della
cartella di Office, quindi aprire la query Dettagli ordini complessivi o Subtotale ordini in
visualizzazione Struttura.
È possibile impostare le proprietà del campo, ad esempio la proprietà Formato, poiché il
campo non eredita le proprietà della tabella sottostante.
Get documents about "