In Microsoft Access è possibile usare le espressioni per una vasta gamma di attività, ad esempio eseguire calcoli matematici, combinare o estrarre testo e convalidare dati. Questo articolo fornisce informazioni generali sulle espressioni: quando usarle, da quali componenti sono costituite e in che modo possono essere confrontate con le formule di Microsoft Excel.
In questo articolo
Panoramica delle espressioni
Se si vuole che Access esegua una determinata operazione, occorre usare un linguaggio che sia in grado di capire. Supponiamo ad esempio di volere che Access esegua una ricerca nel campo BirthDate della tabella Customers e restituisca l'anno di nascita del cliente. A questo scopo è possibile scrivere l'espressione seguente:
DatePart("yyyy",[Customers]![BirthDate])
Questa espressione è composta dalla funzione DatePart e dai due argomenti "yyyy" e [Customers]![BirthDate].
Esaminiamo l'espressione in modo più dettagliato.
1 DatePart è una funzione che esamina una data e restituisce una parte specifica. In questo caso vengono usati i primi due argomenti.
2 L'argomento intervallo indica ad Access la parte di data da restituire. In questo caso l'argomento "yyyy" indica ad Access di restituire solo la parte della data relativa all'anno.
3 L'argomento data indica ad Access dove cercare il valore della data. In questo caso, Customers]![BirthDate] indica ad Access di cercare la data nel campo Data di nascita della tabella Clienti.
Modalità di utilizzo delle espressioni
È possibile usare le espressioni nei modi seguenti:
-
Calcolare valori non disponibili direttamente nei dati. È possibile calcolare valori nei campi di tabelle e query e nei controlli di maschere e report.
-
Definire un valore predefinito per un campo di tabella o per un controllo in una maschera o un report. Questi valori predefiniti vengono visualizzati quando si apre una tabella, una maschera o un report.
-
Creare una regola di convalida per controllare i valori che un utente può immettere in un campo o in un controllo.
-
Definire criteri di query per limitare i risultati a uno specifico sottoinsieme.
Calcolare valori
Una delle situazioni più comuni in cui in Access vengono usate le espressioni è il calcolo di valori non presenti direttamente nei dati disponibili. Una colonna di una tabella o una query derivante da un calcolo di questo tipo viene definita campo calcolato. È possibile creare un campo calcolato che combina due o più campi di tabella. In numerose tabelle, ad esempio, i nomi e i cognomi sono memorizzati in campi distinti. Per combinare nome e cognome e quindi visualizzarli in un campo singolo, è possibile creare un campo calcolato nella tabella o in una query:
[FirstName] & " " & [LastName].
In questo caso le e commerciali (&) combinano il valore nel campo FirstName, uno spazio (racchiuso tra virgolette) e il valore del campo LastName.
Definire un valore predefinito
Le espressioni di Access possono essere usate anche per fornire un valore predefinito per un campo di una tabella o per un controllo. Per impostare ad esempio il valore predefinito per un campo di tipo Data sulla data corrente, nella casella della proprietà Valore predefinito per tale campo digitare:
Date()
Creare una regola di convalida
Un'espressione può anche essere usata per impostare una regola di convalida. Ad esempio, è possibile usare una regola di convalida in un controllo o in un campo di tabella per verificare che la data immessa sia maggiore o uguale alla data corrente. In tal caso, il valore della casella della proprietà Valido se deve essere impostato su:
>= Date()
Definire criteri di query
Infine, è possibile usare un'espressione per impostare i criteri per una query. Ad esempio, si supponga di voler vedere le vendite di prodotto per gli ordini spediti in un certo intervallo di tempo. È possibile immettere criteri per definire un intervallo di date e Access restituirà solo le righe che corrispondono ai criteri. Ad esempio, l’espressione potrebbe essere come segue:
Between #1/1/2017# And #12/31/2017#
Se si aggiungono criteri alla query e quindi si esegue di nuovo la query, verranno restituiti solo i valori corrispondenti alle date specificate.
Esempi di espressioni
Nella tabella seguente sono elencate alcune espressioni di Access di esempio e il relativo utilizzo tipico:
Espressione |
Scopo |
---|---|
=[RequiredDate]-[ShippedDate] |
Calcola la differenza tra i valori di data in due controlli casella di testo (RequiredDate e ShippedDate) in un report. |
Date() |
Imposta il valore predefinito per un campo di tabella Data/ora sulla data corrente. |
Between #1/1/2017# And #12/31/2017# |
Specifica i criteri per un campo Data/ora in una query. |
=[Orders Subform].Form!OrderSubtotal |
Restituisce il valore del controllo OrderSubtotal nella sottomaschera Orders della maschera Orders. |
>0 |
Imposta una regola di convalida per un campo numerico di una tabella, in cui gli utenti devono immettere valori maggiori di zero. |
Alcune espressioni, ma non tutte, iniziano con l'operatore di uguaglianza (=). Quando si calcola un valore per un controllo in una maschera o un report, iniziare l'espressione con l'operatore =. In altri casi, ad esempio quando si digita un'espressione in una query o nella proprietà DefaultValue o ValidoSe di un campo o di un controllo, non deve essere utilizzato l'operatore =, a meno che l'espressione non venga aggiunta a un campo di testo di una tabella. In alcuni casi, ad esempio quando si aggiungono espressioni a query, l'operatore = viene rimosso automaticamente.
Componenti delle espressioni
Un'espressione è costituita da un certo numero di componenti consentiti che possono essere usati singolarmente o in combinazione per produrre un risultato. Questi componenti includono:
-
Identificatori Nomi di campi di tabella o di controlli in maschere o report oppure proprietà di questi campi o controlli.
-
Operatori Ad esempio + (più) o - (meno).
-
Funzioni Ad esempio SUM o AVG.
-
Costanti Valori invariabili, ad esempio stringhe di testo o numeri che non vengono calcolati da un'espressione.
-
Valori Stringhe, ad esempio "Immettere un numero compreso tra 1 e 10", o numeri, ad esempio 1.254, usati nelle operazioni.
Le sezioni seguenti descrivono questi componenti in maggiore dettaglio.
Identificatori
Un identificatore è il nome di un campo, una proprietà o un controllo. Viene usato in un'espressione per fare riferimento al valore associato a un campo, una proprietà o un controllo. Consideriamo ad esempio l'espressione =[RequiredDate]-[ShippedDate]. In questa espressione il valore del campo o del controllo ShippedDate viene sottratto dal valore del campo o del controllo RequiredDate. Nell'espressione sia RequiredDate che ShippedDate vengono usati come identificatori.
Operatori
Access supporta diversi operatori, inclusi gli operatori aritmetici comuni, come +, -, * (moltiplicazione) e / (divisione). È anche possibile usare gli operatori di confronto come < (minore di) o > (maggiore di) per confrontare valori, operatori di testo come & e + per concatenare (combinare) testo, operatori logici come Not e And per determinare valori true o false e altri operatori specifici di Access.
Funzioni
Le funzioni sono routine predefinite che è possibile usare nelle espressioni. Consentono di eseguire numerose operazioni, ad esempio calcolare valori, modificare testo e date e riepilogare dati. Una funzione comunemente usata è, ad esempio, DATE, che restituisce la data corrente. È possibile usare la funzione DATE in vari modi, ad esempio in un'espressione che imposta il valore predefinito per un campo in una tabella. In questo esempio, ogni volta che si aggiunge un nuovo record, il valore del campo viene impostato sulla data corrente per impostazione predefinita.
Alcune funzioni richiedono l'uso di argomenti. Un argomento è un valore che fornisce l'input alla funzione. Se una funzione richiede più argomenti, separarli con una virgola. Si consideri ad esempio la funzione DATE nell'espressione seguente:
=Format(Date(),"mmmm d, yyyy")
Questo esempio usa due argomenti:
-
Il primo argomento è la funzione Date(), che restituisce la data corrente. Se non ci sono argomenti, occorre comunque aggiungere le parentesi della funzione.
-
Il secondo argomento, "mmmm d, yyyy", separato dal primo da una virgola, specifica una stringa di testo per indicare alla funzione FORMAT come formattare il valore di data restituito. Si noti che la stringa di testo deve essere racchiusa tra virgolette.
Questa espressione illustra anche la possibilità di annidare spesso il valore restituito da una funzione come argomento per un'altra funzione. In questo caso, Date() viene usato come argomento.
Costanti
Una costante è un elemento il cui valore non cambia durante l'esecuzione di Access. Le costanti True, False e Null vengono usate spesso nelle espressioni.
Valori
Nelle espressioni è possibile usare valori letterali, ad esempio il numero 1.254 o la stringa "Immettere un numero compreso tra 1 e 10". È possibile usare anche valori numerici, che possono essere costituiti da una serie di cifre e includere, se necessario, un segno e una virgola decimale.
Quando si usano valori di stringhe di testo, racchiuderli tra virgolette per assicurarne la corretta interpretazione in Access. In alcune circostanze, le virgolette vengono inserite automaticamente. Se ad esempio si digita testo in un'espressione per una regola di convalida o per i criteri di una query, le stringhe di testo vengono racchiuse automaticamente tra virgolette.
Per usare valori di data/ora, racchiuderli tra cancelletti (#). Ad esempio, #3-7-17#, #7-Mar-17# e #Mar-7-2017# sono tutti valori di data/ora validi. Quando Access rileva un valore di data/ora valido racchiuso tra caratteri #, lo considera automaticamente come un tipo di dati Data/ora.
Confronto tra le espressioni di Access e le formule di Excel
Le espressioni di Access sono analoghe alle formule di Excel, in quanto utilizzano elementi simili per produrre un risultato. Entrambe contengono uno o più degli elementi seguenti:
-
Identificatori In Excel gli identificatori sono i nomi di singole celle o di intervalli di celle di una cartella di lavoro, ad esempio A1, B3:C6 o Foglio2!C32. In Access gli identificatori sono i nomi dei campi di tabella, ad esempio [Contacts]![First Name], i controlli di maschere o report, ad esempio Forms![Task List]![Description], o le proprietà di tali campi o controlli, ad esempio Forms![Task List]![Description].ColumnWidth.
-
Operatori Sia in Access che in Excel gli operatori vengono usati per confrontare valori o eseguire semplici calcoli sui dati. Esempi di operatori sono + (più) o - (meno).
-
Funzioni Sia in Access che in Excel le funzioni e gli argomenti vengono usati per completare azioni che non possono essere eseguite con i soli operatori. Ad esempio, è possibile calcolare la media dei valori di un campo o convertire il risultato di un calcolo in un formato valuta. Esempi di funzioni includono SOMMA e DEV.ST. Gli argomenti sono valori che forniscono informazioni per le funzioni. Sia Access che Excel hanno numerose funzioni tra cui scegliere, ma in alcuni casi i nomi di funzioni simili sono diverse tra i due programmi. Ad esempio, la funzione MEDIA in Excel corrisponde alla funzione AVG in Access.
-
Costanti Sia in Access che in Excel le costanti sono valori che rimangono invariati, ad esempio numeri che non vengono calcolati mediante un'espressione.
-
Valori I valori vengono usati in modo simile in Access e in Excel.
Nelle espressioni di Access vengono utilizzati operatori e costanti simili a quelli utilizzati nelle formule di Excel, ma con identificatori e funzioni diversi. Mentre le formule di Excel vengono usate in genere solo nelle celle dei fogli di lavoro, le espressioni di Access vengono utilizzate in molti punti per un'ampia gamma di operazioni, ad esempio:
-
Creazione di controlli calcolati in maschere e report.
-
Creazione di campi calcolati in tabelle e query.
-
Utilizzo come criteri nelle query.
-
Convalida dei dati immessi in un campo o in un controllo di una maschera.
-
Raggruppamento dei dati in report.
È possibile usare un'espressione di Access o una formula di Excel per il calcolo di valori numerici o di data/ora con operatori matematici. Per calcolare ad esempio un prezzo scontato per un cliente, è possibile usare la formula di Excel =C2*(1-D2) o l'espressione di Access = [Unit Price]*(1-[Discount]).
Si può anche usare un'espressione di Access o una formula di Excel per combinare, dividere o modificare in altro modo le stringhe con operatori di tipo stringa. Per combinare ad esempio un nome e un cognome in un'unica stringa, è possibile usare la formula di Excel =D3 & " " & D4 o l'espressione di Access = [First Name] & " " & [Last Name].