Esempi di espressioni

Questo articolo offre vari esempi di espressioni di Access. Le espressioni sono una combinazione di operatori logici o matematici, costanti, funzioni, campi di tabelle, controlli e proprietà che restituiscono un singolo valore. È possibile usare le espressioni di Access per calcolare valori, convalidare dati e impostare un valore predefinito.

In questo articolo

Maschere e report

Le tabelle in questa sezione forniscono esempi di espressioni che calcolano un valore in un controllo che si trova in una maschera o in un report. Per creare un controllo calcolato, immettere un'espressione nella proprietà OrigineControllo del controllo e non in un campo di tabella o in una query.

Nota    È possibile usare le espressioni in una maschera o un report anche quando si evidenziano i dati con la formattazione condizionale.

Operazioni di testo

Le espressioni nella tabella seguente usano gli operatori & (e commerciale) e + (più) per combinare stringhe di testo e funzioni predefinite per modificare una stringa di testo o per modificare in altro modo un testo per creare un controllo calcolato.

Espressione

Risultato

="N/A"

Visualizza N/A.

=[FirstName] & " " & [LastName]

Visualizza i valori contenuti nei campi di tabella denominati FirstName e LastName. In questo esempio l'operatore & viene usato per combinare il campo FirstName, uno spazio racchiuso tra virgolette e il campo LastName.

=Left([ProductName], 1)

Usa la funzione Left per visualizzare il primo carattere del valore di un campo o controllo denominato ProductName.

=Right([AssetCode], 2)

Usa la funzione Right per visualizzare gli ultimi 2 caratteri del valore di un campo o controllo denominato AssetCode.

=Trim([Address])

Usa la funzione Trim per visualizzare il valore del controllo Address, rimuovendo gli eventuali spazi iniziali o finali.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Usa la funzione IIf per visualizzare i valori dei controlli City e PostalCode se il valore del controllo Region è Null. In caso contrario, visualizza i valori dei controlli City, Region e PostalCode separati da spazi.

=[City] & (" " + [Region]) & " " & [PostalCode]

Usa l'operatore + e la propagazione del valore Null per visualizzare i valori dei controlli City e PostalCode se il valore del campo o del controllo Region è Null. In caso contrario, visualizza i valori dei campi o dei controlli City, Region e PostalCode separati da spazi.

La propagazione del valore Null prevede che se un componente di un'espressione ha valore Null, il risultato dell'intera espressione sarà Null. L'operatore + supporta la propagazione del valore Null, mentre l'operatore & non la supporta.

Inizio pagina

Intestazioni e piè di pagina

Usare le proprietà Page e Pages per visualizzare o stampare i numeri di pagina in maschere o report. Le proprietà Page e Pages sono disponibili solo durante la stampa o l'anteprima di stampa, quindi non vengono visualizzate nella finestra delle proprietà della maschera o del report. In genere queste proprietà vengono usate posizionando una casella di testo nella sezione dell'intestazione o del piè di pagina della maschera o del report, quindi usando un'espressione, ad esempio una di quelle mostrate nella tabella seguente.

Per altre informazioni sull'uso di intestazioni e piè di pagina in maschere e report, vedere l'articolo Inserire i numeri di pagina in una maschera o un report.

Espressione

Risultato

=[Page]

1

="Page " & [Page]

Pagina 1

="Page " & [Page] & " of " & [Pages]

Pagina 1 di 3

=[Page] & " of " & [Pages] & " Pages"

1 di 3 pagine

=[Page] & "/" & [Pages] & " Pages"

1/3 pagine

=[Country/region] & " - " & [Page]

IT - 1

=Format([Page], "000")

001

="Printed on: " & Date()

Stampa del: 31/12/17

Inizio pagina

Operazioni aritmetiche

È possibile usare le espressioni per aggiungere, sottrarre, moltiplicare e dividere i valori in due o più campi o controlli, oltre che per eseguire operazioni aritmetiche sulle date. Si supponga, ad esempio, di avere un campo di tabella di tipo Data/ora denominato RequiredDate. L'espressione =[RequiredDate] - 2 immessa nel campo o in un controllo associato al campo restituirà un valore di data/ora antecedente di due giorni ai valori correnti presenti nel campo RequiredDate.

Espressione

Risultato

=[Subtotal]+[Freight]

Somma dei valori dei campi o dei controlli Subtotal e Freight.

=[RequiredDate]-[ShippedDate]

Intervallo compreso tra i valori dei campi o dei controlli RequiredDate e ShippedDate.

=[Price]*1.06

Prodotto del valore del campo o del controllo Price moltiplicato per 1,06, che aggiunge il 6% al valore Price.

=[Quantity]*[Price]

Prodotto dei valori dei campi o dei controlli Quantity e Price.

=[EmployeeTotal]/[CountryRegionTotal]

Quoziente dei valori dei campi o dei controlli EmployeeTotal e CountryRegionTotal.

Nota    Quando si usa un operatore aritmetico (+, -, * e /) in un'espressione e il valore di uno dei controlli nell'espressione è Null, il risultato dell'intera espressione sarà Null, ossia la propagazione del valore Null. Se uno o più record in uno dei controlli usati nell'espressione possono includere un valore Null, è possibile evitare la propagazione convertendo il valore Null in zero con la funzione Nz, ad esempio =Nz([Subtotal])+Nz([Freight]).

Inizio pagina

Valori in altri controlli

A volte è necessario un valore che si trova in un'altra posizione, ad esempio in un campo o in un controllo in un'altra maschera o report. È possibile usare un'espressione per restituire il valore da un altro campo o controllo.

La tabella seguente mostra esempi di espressioni che possono essere usati nei controlli calcolati delle maschere.

Espressione

Risultato

=Forms![Orders]![OrderID]

Valore del controllo OrderID della maschera Orders.

=Forms![Orders]![Orders Subform].Form![OrderSubtotal]

Valore del controllo OrderSubtotal della sottomaschera denominata Orders Subform nella maschera Orders.

=Forms![Orders]![Orders Subform]![ProductID].Column(2)

Valore della terza colonna in ProductID, una casella di riepilogo a più colonne della sottomaschera denominata Orders Subform nella maschera Orders. 0 fa riferimento alla prima colonna, 1 fa riferimento alla seconda colonna e così via.

=Forms![Orders]![Orders Subform]![Price] * 1.06

Prodotto del valore del controllo Prezzo della sottomaschera denominata Orders Subform nella maschera Orders moltiplicato per 1,06, che aggiunge il 6% al valore del controllo Price.

=Parent![OrderID]

Valore del controllo OrderID nella maschera principale o padre della sottomaschera corrente.

Le espressioni nella tabella seguente mostrano alcuni modi per usare i controlli calcolati nei report. Le espressioni fanno riferimento alla proprietà Report.

Espressione

Risultato

=Report![Invoice]![OrderID]

Valore di un controllo denominato "OrderID" incluso in un report denominato "Invoice".

=Report![Summary]![Summary Subreport]![SalesTotal]

Valore del controllo SalesTotal del sottoreport denominato Summary Subreport nel report Summary.

=Parent![OrderID]

Valore del controllo OrderID del report principale o padre del sottoreport corrente.

Inizio pagina

Conteggio, somma e media di valori

È possibile usare un tipo di funzione denominata funzione di aggregazione per calcolare i valori per uno o più campi o controlli. Ad esempio, è possibile calcolare il totale del gruppo per il piè di pagina gruppo in un report oppure il subtotale di un ordine per le voci in una maschera. È anche possibile contare il numero di elementi in uno o più campi o calcolare un valore medio.

Le espressioni nella tabella seguente mostrano alcune modalità d'uso di funzioni quali Avg, Count e Sum.

Espressione

Descrizione

=Avg([Freight])

Usa la funzione Avg per visualizzare la media dei valori di un campo di tabella o di un controllo denominato "Freight".

=Count([OrderID])

Usa la funzione Count per visualizzare il numero di record inclusi nel controllo OrderID.

=Sum([Sales])

Usa la funzione Sum per visualizzare la somma dei valori del controllo Sales.

=Sum([Quantity]*[Price])

Usa la funzione Sum per visualizzare la somma del prodotto dei valori nei controlli Quantity e Price.

=[Sales]/Sum([Sales])*100

Visualizza la percentuale di vendite, che viene determinata dividendo il valore del controllo Sales per la somma di tutti i valori del controllo Sales.

Se si imposta la proprietà Format del controllo su Percent, non includere *100 nell'espressione.

Per altre informazioni sull'utilizzo delle funzioni di aggregazione e il calcolo della somma dei valori in campi e colonne, vedere gli articoli Sommare i dati tramite una query, Conteggiare dati tramite una query, Eseguire il conteggio delle righe in un foglio dati e Visualizzare totali di colonna in un foglio dati.

Inizio pagina

Funzioni di aggregazione SQL

Usare un tipo di funzione denominata funzione di aggregazione SQL o sui domini per sommare o contare i valori in modo selettivo. Un "dominio" è costituito da uno o più campi in una o più tabelle oppure da uno o più controlli di una o più maschere o report. Ad esempio, è possibile associare i valori di un campo di tabella ai valori di un controllo in una maschera.

Espressione

Descrizione

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]"))

Usa la funzione DLookup per restituire il valore del campo ContactName incluso nella tabella Suppliers quando il valore del campo SupplierID incluso nella tabella corrisponde al valore del controllo SupplierID nella maschera Suppliers.

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID])

Usa la funzione DLookup per restituire il valore del campo ContactName incluso nella tabella Suppliers quando il valore del campo SupplierID incluso nella tabella corrisponde al valore del controllo SupplierID nella maschera New Suppliers.

=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'")

Usa la funzione DSum per restituire la somma totale dei valori inclusi nel campo OrderAmount della tabella Orders quando CustomerID corrisponde a RATTC.

=DCount("[Retired]","[Assets]","[Retired]=Yes")

Usa la funzione DCount per restituire il numero di valori Yes inclusi nel campo Retired (un campo Yes/No) della tabella Assets.

Inizio pagina

Operazioni di data

La registrazione di date e ore è un'attività di database fondamentale. Ad esempio, è possibile calcolare il numero di giorni trascorsi a partire dalla data di fatturazione per determinare i tempi della contabilità clienti. È possibile formattare le date e le ore in vari modi, come mostrato nella tabella seguente.

Espressione

Descrizione

=Date()

Usa la funzione Date per visualizzare la data corrente nel formato mm-dd-yy, dove mm rappresenta il mese (da 1 a 12), dd rappresenta il giorno (da 1 a 31) e yy rappresenta le ultime due cifre dell'anno, compreso tra il 1980 e il 2099.

=Format(Now(), "ww")

Usa la funzione Format per visualizzare il numero della settimana dell'anno per la data corrente, dove ww rappresenta le settimane comprese tra 1 e 53.

=DatePart("yyyy", [OrderDate])

Usa la funzione DatePart per visualizzare il valore del controllo OrderDate con il formato dell'anno esteso.

=DateAdd("y", -10, [PromisedDate])

Usa la funzione DateAdd per visualizzare una data antecedente di 10 giorni al valore del controllo PromisedDate.

=DateDiff("d", [OrderDate], [ShippedDate])

Usa la funzione DateDiff per visualizzare il numero di giorni di differenza tra i valori dei controlli OrderDate e ShippedDate.

=[InvoiceDate] + 30

Usa operazioni aritmetiche sulle date per calcolare la data posteriore di 30 giorni alla data contenuta nel campo o nel controllo InvoiceDate.

Inizio pagina

Condizioni di due soli valori

Le espressioni di esempio nella tabella seguente usano la funzione IIf per restituire uno o due valori possibili. Alla funzione IIf vengono passati tre argomenti: il primo argomento è un'espressione che deve restituire un valore True o False. Il secondo argomento è il valore da restituire se l'espressione è vera, mentre il terzo argomento è il valore da restituire se l'espressione è falsa.

Espressione

Descrizione

=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed")

Usa la funzione IIf (Immediate If) per visualizzare il messaggio "Order Confirmed" se il valore del controllo Confirmed è Yes. In caso contrario, visualizza il messaggio "Order Not Confirmed.".

=IIf(IsNull([Country/region]), " ", [Country])

Usa le funzioni IIf e IsNull per visualizzare una stringa vuota se il valore del controllo Country/region è Null. In caso contrario, visualizza il valore del controllo Country/region.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Usa le funzioni IIf e IsNull per visualizzare i valori dei controlli City e PostalCode se il valore contenuto nel controllo Region è Null. In caso contrario, visualizza i valori dei campi o dei controlli City, Region e PostalCode.

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Usa le funzioni IIf e IsNull per visualizzare il messaggio "Check for a missing date" se il risultato della sottrazione di ShippedDate da RequiredDate è Null. In caso contrario, visualizza l'intervallo compreso tra i valori di data dei controlli RequiredDate e ShippedDate.

Inizio pagina

Query e filtri

Questa sezione contiene esempi di espressioni che è possibile usare per creare un campo calcolato in una query o per specificare i criteri per una query. Un campo calcolato è una colonna in una query che risulta da un'espressione. Ad esempio, è possibile calcolare un valore, combinare valori di testo come nomi e cognomi oppure formattare una parte di una data.

Usare i criteri in una query per limitare i record su cui si lavora. È ad esempio possibile usare l'operatore Between per specificare le date di inizio e fine e limitare i risultati della query agli ordini spediti fra tali date.

Di seguito sono disponibili esempi di espressioni da usare nelle query.

Operazioni di testo

Le espressioni nella tabella seguente usano gli operatori & e + per combinare stringhe di testo e funzioni predefinite per modificare una stringa di testo o per modificare in altro modo un testo per creare un campo calcolato.

Espressione

Descrizione

FullName: [FirstName] & " " & [LastName]

Crea un campo denominato FullName che visualizza i valori inclusi nei campi FirstName e LastName separati da uno spazio.

Address2: [City] & " " & [Region] & " " & [PostalCode]

Crea un campo denominato Address2 che visualizza i valori inclusi nei campi City, Region e PostalCode separati da spazi.

ProductInitial: Left([ProductName], 1)

Crea un campo denominato ProductInitial, quindi usa la funzione Left per visualizzare in questo campo il primo carattere del valore incluso nel campo ProductName.

TypeCode: Right([AssetCode], 2)

Crea un campo denominato TypeCode, quindi usa la funzione Right per visualizzare gli ultimi due caratteri dei valori inclusi nel campo AssetCode.

AreaCode: Mid([Phone],2,3)

Crea un campo denominato AreaCode, quindi usa la funzione Mid per visualizzare tre caratteri a partire dal secondo carattere del valore incluso nel campo Phone.

ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100

Assegna al campo calcolato il nome ExtendedPrice e usa la funzione CCur per calcolare il totale delle voci con uno sconto applicato.

Inizio pagina

Operazioni aritmetiche

È possibile usare le espressioni per aggiungere, sottrarre, moltiplicare e dividere i valori in due o più campi o controlli. È anche possibile eseguire operazioni aritmetiche sulle date. Si supponga, ad esempio, di avere un campo Data/ora denominato RequiredDate. L'espressione =[RequiredDate] - 2 restituisce un valore Data/ora antecedente di due giorni al valore del campo RequiredDate.

Espressione

Descrizione

PrimeFreight: [Freight] * 1.1

Crea un campo denominato PrimeFreight, quindi visualizza nel campo le spese di trasporto aumentate del 10%.

OrderAmount: [Quantity] * [UnitPrice]

Crea un campo denominato OrderAmount, quindi visualizza il prodotto dei valori inclusi nei campi Quantity e UnitPrice.

LeadTime: [RequiredDate] - [ShippedDate]

Crea un campo denominato LeadTime, quindi visualizza la differenza tra i valori inclusi nei campi RequiredDate e ShippedDate.

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Crea un campo denominato TotalStock, quindi visualizza la somma dei valori inclusi nei campi UnitsInStock e UnitsOnOrder.

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Crea un campo denominato FreightPercentage, quindi visualizza la percentuale delle spese di trasporto in ogni subtotale. L'espressione usa la funzione Sum per sommare i valori nel campo Freight, quindi divide i totali per la somma dei valori nel campo Subtotal.

Per usare questa espressione, è necessario convertire la query di selezione in una query di totalizzazione perché è necessario usare la riga Totale nella griglia di struttura e impostare la cella Totale per il campo su Espressione.

Per altre informazioni sulla creazione di query di totalizzazione, vedere l'articolo Sommare i dati tramite una query.

Se si imposta la proprietà Format del campo su Percent, non includere *100.

Per altre informazioni sull'utilizzo delle funzioni di aggregazione e il calcolo della somma dei valori in campi e colonne, vedere gli articoli Sommare i dati tramite una query, Conteggiare dati tramite una query, Eseguire il conteggio delle righe in un foglio dati e Visualizzare totali di colonna in un foglio dati.

Inizio pagina

Operazioni di data

Quasi tutti i database archiviano e tengono traccia di date e ore. Per usare date e ore in Access, impostare i relativi campi nelle tabelle sul tipo di dati Data/ora. Access può eseguire calcoli aritmetici sulle date, ad esempio, è possibile calcolare il numero di giorni trascorsi a partire dalla data di fatturazione per determinare i tempi della contabilità clienti.

Espressione

Descrizione

LagTime: DateDiff("d", [OrderDate], [ShippedDate])

Crea un campo denominato LagTime, quindi usa la funzione DateDiff per visualizzare il numero di giorni compresi tra la data dell'ordine e la data di spedizione.

YearHired: DatePart("yyyy",[HireDate])

Crea un campo denominato YearHired, quindi usa la funzione DatePart per visualizzare l'anno di assunzione di ogni dipendente.

MinusThirty: Date( )- 30

Crea un campo denominato MinusThirty, quindi usa la funzione Date per visualizzare la data antecedente di 30 giorni alla data corrente.

Inizio pagina

Funzioni di aggregazione SQL

Le espressioni nella tabella seguente usano funzioni SQL (Structured Query Language) che consentono di aggregare o di riepilogare i dati. Queste funzioni, ad esempio Sum, Count e Avg, vengono chiamate spesso funzioni di aggregazione.

Oltre alle funzioni di aggregazione, Access fornisce anche funzioni di aggregazione "sui domini" che consentono di sommare o contare i valori in modo selettivo. Ad esempio, è possibile contare solo i valori all'interno di un determinato intervallo o cercare un valore in un'altra tabella. Il set di funzioni di aggregazione sui domini include le funzioni DSum, DCount e DAvg.

Per calcolare i totali, spesso è necessario creare una query di totalizzazione. Ad esempio, per riepilogare per gruppo, è necessario usare una query di totalizzazione. Per abilitare una query di totalizzazione dalla griglia di struttura della query, fare clic su Totali nel menu Visualizza.

Espressione

Descrizione

RowCount: Count(*)

Crea un campo denominato RowCount, quindi usa la funzione Count per contare il numero di record nella query, inclusi i record con campi Null (vuoti).

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Crea un campo denominato FreightPercentage, quindi calcola la percentuale delle spese di trasporto in ogni subtotale dividendo la somma dei valori inclusi nel campo Freight per la somma dei valori inclusi nel campo Subtotal. Questo esempio usa la funzione Sum.

È necessario usare questa espressione con una query di totalizzazione. Se si imposta la proprietà Format del campo su Percent, non includere *100.

Per altre informazioni sulla creazione di query di totalizzazione, vedere l'articolo Sommare i dati tramite una query.

AverageFreight: DAvg("[Freight]", "[Orders]")

Crea un campo denominato AverageFreight, quindi usa la funzione DAvg per calcolare la media delle spese di trasporto per tutti gli ordini riepilogati in una query di totalizzazione.

Inizio pagina

Campi con dati mancanti

Le espressioni seguenti consentono di usare campi con informazioni potenzialmente mancanti, ad esempio quelli che contengono valori Null (sconosciuti o non definiti). I valori Null, ad esempio un prezzo sconosciuto per un nuovo prodotto o un valore che un collega ha dimenticato di aggiungere a un ordine, sono piuttosto frequenti. La capacità di trovare ed elaborare i valori Null può essere fattore fondamentale nelle operazioni di database e le espressioni nella tabella seguente mostrano alcuni modi comuni per gestire i valori Null.

Espressione

Descrizione

CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion])

Crea un campo denominato CurrentCountryRegion, quindi usa le funzioni IIf e IsNull per visualizzare una stringa vuota in tale campo quando il campo CountryRegion contiene un valore Null. In caso contrario, visualizza il contenuto del campo CountryRegion.

LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Crea un campo denominato LeadTime, quindi usa le funzioni IIf e IsNull per visualizzare il messaggio "Check for a missing date" se il valore incluso nel campo RequiredDate field o ShippedDate è Null. In caso contrario, visualizza la differenza di data.

SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales])

Crea un campo denominato SixMonthSales, quindi visualizza il totale dei valori inclusi nei campi Qtr1Sales e Qtr2Sales usando per prima la funzione Nz per convertire gli eventuali valori Null in zero.

Inizio pagina

Campi calcolati con sottoquery

È possibile usare una query annidata, chiamata anche sottoquery, per creare un campo calcolato. L'espressione nella tabella seguente è un esempio di campo calcolato restituito da una sottoquery.

Espressione

Descrizione

Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID])

Crea un campo denominato Categoria, quindi visualizza CategoryName, se il valore CategoryID della tabella Categories è uguale al valore CategoryID della tabella Products.

Inizio pagina

Confronto di valori di testo

Le espressioni di esempio nella tabella seguente mostrano i criteri che consentono di ottenere una corrispondenza di valori di testo interi o parziali.

Campo

Espressione

Descrizione

ShipCity

"London"

Visualizza gli ordini spediti a Londra.

ShipCity

"London" Or "Hedge End"

Usa l'operatore Or per visualizzare gli ordini spediti a Londra o Hedge End.

ShipCountryRegion

In("Canada", "UK")

Usa l'operatore In per visualizzare gli ordini spediti in Canada o Regno Unito.

ShipCountryRegion

Not "USA"

Usa l'operatore Not per visualizzare gli ordini spediti in tutti i paesi/aree geografiche tranne gli Stati Uniti.

ProductName

Not Like "C*"

Usa l'operatore Not e il carattere jolly * per visualizzare i prodotti il cui nome non inizia con la lettera C.

CompanyName

>="N"

Visualizza gli ordini spediti a società il cui nome inizia con una lettera compresa tra N e Z.

ProductCode

Right([ProductCode], 2)="99"

Usa la funzione Right per visualizzare gli ordini con valori ProductCode che terminano con 99.

ShipName

Like "S*"

Visualizza gli ordini spediti a clienti il cui nome inizia con la lettera S.

Inizio pagina

Confronto di criteri di data

Le espressioni nella tabella seguente mostrano come usare le date e le funzioni correlate nelle espressioni criterio. Per altre informazioni sull'immissione e l'utilizzo dei valori di data, vedere l'articolo Immettere un valore di data e ora.

Campo

Espressione

Descrizione

ShippedDate

#2/2/2017#

Visualizza gli ordini spediti il 2 febbraio 2017.

ShippedDate

Date()

Visualizza gli ordini spediti in data odierna.

DataRichiesta

Between Date( ) And DateAdd("m", 3, Date( ))

Usa l'operatore Between...And e le funzioni DateAdd e Date per visualizzare gli ordini richiesti tra la data odierna e i tre mesi successivi alla data odierna.

OrderDate

< Date( ) - 30

Usa la funzione Date per visualizzare gli ordini antecedenti a 30 giorni.

OrderDate

Year([OrderDate])=2017

Usa la funzione Year per visualizzare gli ordini con date relative all'anno 2017.

OrderDate

DatePart("q", [OrderDate])=4

Usa la funzione DatePart per visualizzare gli ordini relativi al quarto trimestre.

OrderDate

DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1

Usa le funzioni DateSerial, Year e Month per visualizzare gli ordini relativi all'ultimo giorno di ogni mese.

OrderDate

Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now())

Usa le funzioni Year e Month con l'operatore And per visualizzare gli ordini relativi all'anno e al mese corrente.

ShippedDate

Between #1/5/2017# And #1/10/2017#

Usa l'operatore Between...And per visualizzare gli ordini spediti non prima del 5 gennaio 2017 e non dopo il 10 gennaio 2017.

RequiredDate

Between Date( ) And DateAdd("M", 3, Date( ))

Usa l'operatore Between...And per visualizzare gli ordini richiesti tra la data odierna e i tre mesi successivi alla data odierna.

BirthDate

Month([BirthDate])=Month(Date())

Usa le funzioni Month e Date per visualizzare i dipendenti che compiono gli anni nel mese specificato.

Inizio pagina

Ricerca di dati mancanti

Le espressioni nella tabella seguente funzionano con campi che contengono informazioni potenzialmente mancanti, ovvero quelli che potrebbero contenere un valore Null o una stringa di lunghezza zero. Un valore Null rappresenta l'assenza di informazioni. Non rappresenta un valore pari a zero o di altro tipo. Access supporta il concetto di assenza di informazioni perché si tratta di un concetto fondamentale per l'integrità di un database. Nelle situazioni reali le informazioni sono spesso assenti, anche se solo temporaneamente, ad esempio il prezzo ancora non determinato di un nuovo prodotto. Di conseguenza, un database modellato in base a un'entità reale, ad esempio un'azienda, deve poter registrare informazioni come mancanti. È possibile usare la funzione IsNull per determinare se un campo o un controllo contiene un valore Null ed è possibile usare la funzione Nz per convertire un valore Null in zero.

Campo

Espressione

Descrizione

ShipRegion

Is Null

Visualizza gli ordini dei clienti il cui campo ShipRegion contiene un valore Null, ovvero il cui valore è mancante.

ShipRegion

Is Not Null

Visualizza gli ordini dei clienti il cui campo ShipRegion contiene un valore.

Fax

""

Visualizza gli ordini dei clienti che non dispongono di un fax, indicazione fornita da un valore stringa di lunghezza zero incluso nel campo Fax invece che da un valore Null (mancante).

Inizio pagina

Confronto di criteri di record con Like

L'operatore Like offre molta flessibilità quando si cerca di associare le righe che seguono un criterio, perché è possibile usare Like con caratteri jolly e definire i criteri in base a cui Access trova le corrispondenze. Ad esempio, il carattere jolly * (asterisco) corrisponde a una sequenza di caratteri di qualsiasi tipo e consente di trovare in modo semplice tutti i nomi che iniziano con una lettera. Ad esempio, si può usare l'espressione Like "S*" per trovare tutti i nomi che iniziano con la lettera S. Per altre informazioni, vedere l'articolo Operatore Like.

Campo

Espressione

Descrizione

ShipName

Like "S*"

Trova tutti i record nei quali il valore del campo ShipName inizia con la lettera S.

ShipName

Like "*Imports"

Trova tutti i record nei quali il valore del campo ShipName termina con la parola "Imports".

ShipName

Like "[A-D]*"

Trova tutti i record nei quali il valore del campo ShipName inizia con le lettere A, B, C o D.

ShipName

Like "*ar*"

Trova tutti i record nei quali il valore del campo ShipName contiene la sequenza di lettere "ar".

ShipName

Like "Villa Dewe?"

Trova tutti i record nei quali il valore del campo ShipName contiene "Villa" nella prima parte e una stringa di cinque lettere, in cui le prime quattro lettere sono "Dewe" e l'ultima lettera è sconosciuta.

ShipName

Not Like "A*"

Trova tutti i record nei quali il valore del campo ShipName non inizia con la lettera A.

Inizio pagina

Confronto di righe con aggregazioni SQL

Usare una funzione di aggregazione SQL o sui domini per sommare, contare o calcolare la media dei valori in modo selettivo. Questa funzione è utile, ad esempio, per contare solo i valori compresi in un determinato intervallo o che restituiscono il valore Sì. In altri casi, potrebbe essere necessario cercare un valore di un'altra tabella per visualizzarlo. Le espressioni di esempio nella tabella seguente usano le funzioni di aggregazione sui domini per eseguire un calcolo in un set di valori e usano il risultato come criterio di query.

Campo

Espressione

Descrizione

Freight

> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

Usa le funzioni DStDev e DAvg per visualizzare tutti gli ordini per i quali le spese di trasporto hanno superato la media più la deviazione standard per le spese di trasporto.

Quantity

> DAvg("[Quantity]", "[Order Details]")

Usa la funzione DAvg per visualizzare i prodotti ordinati in quantità superiori alla quantità media degli ordini.

Inizio pagina

Confronto di campi con sottoquery

Usare una sottoquery, chiamata anche query annidata, per calcolare un valore da usare come criterio. Le espressioni di esempio nella tabella seguente associano le righe in base ai risultati restituiti da una sottoquery.

Campo

Espressione

Risultato visualizzato

UnitPrice

(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup")

Prodotti i cui prezzi sono uguali al prezzo del prodotto Aniseed Syrup.

UnitPrice

>(SELECT AVG([UnitPrice]) FROM [Products])

Prodotti il cui prezzo unitario è superiore alla media.

Salary

> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*"))

Stipendio di ogni venditore il cui stipendio è superiore rispetto a quello di tutti i dipendenti con titolo di "Manager" o "Vice President".

OrderTotal: [UnitPrice] * [Quantity]

> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details])

Ordini i cui totali sono superiori al valore medio degli ordini.

Inizio pagina

Query di aggiornamento

Usare una query di aggiornamento per modificare i dati in uno o più campi esistenti di un database. Ad esempio, è possibile sostituire i valori o eliminarli completamente. Questa tabella mostra alcuni modi per usare le espressioni nelle query di aggiornamento. Usare queste espressioni nella riga Aggiorna a nella griglia di struttura della query per il campo da aggiornare.

Per altre informazioni sulla creazione di query di aggiornamento, vedere l'articolo Creare ed eseguire una query di aggiornamento.

Campo

Espressione

Risultato

Title

"Salesperson"

Modifica un valore di testo in Salesperson.

ProjectStart

#8/10/17#

Modifica un valore di data in 10-ago-17.

Retired

Yes

Modifica un valore No in Yes in un campo Yes/No.

PartNumber

"PN" & [PartNumber]

Aggiunge PN all'inizio di ogni numero parte specificato.

LineItemTotal

[UnitPrice] * [Quantity]

Calcola il prodotto di UnitPrice per Quantity.

Freight

[Freight] * 1.5

Aumenta le spese di trasporto del 50%.

Sales

DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID])

Se i valori ProductID inclusi nella tabella corrente corrispondono ai valori ProductID inclusi nella tabella Order Details, i totali delle vendite vengono aggiornati in base al prodotto di Quantity per UnitPrice.

ShipPostalCode

Right([ShipPostalCode], 5)

Tronca i caratteri più a sinistra, mantenendo i cinque caratteri più a destra.

UnitPrice

Nz([UnitPrice])

Modifica un valore Null (non definito o sconosciuto) in zero (0) nel campo UnitPrice.

Inizio pagina

Istruzioni SQL

Structured Query Language, o SQL, è il linguaggio di query usato da Access. Tutte le query create nella visualizzazione Struttura query possono essere espresse anche con SQL. Per visualizzare l'istruzione SQL per una query, fare clic su Visualizzazione SQL nel menu Visualizza. La tabella seguente mostra le istruzioni SQL di esempio che usano un'espressione.

Istruzione SQL che usa un'espressione

Risultato

SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio";

Visualizza i valori inclusi nei campi FirstName e LastName dei dipendenti il cui cognome è Danseglio.

SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID];

Visualizza i valori nei campi ProductID e ProductName nella tabella Products per i record in cui il valore CategoryID corrisponde al valore CategoryID specificato in una maschera New Products aperta.

SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000;

Calcola il prezzo complessivo medio per gli ordini il cui valore incluso nel campo ExtendedPrice è superiore a 1000 e lo visualizza in un campo denominato Average Extended Price.

SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10;

In un campo denominato CountOfProductID visualizza il numero totale di prodotti per le categorie che includono più di 10 prodotti.

Inizio pagina

Espressioni per le tabelle

Le due modalità di utilizzo delle espressioni più comuni nelle tabelle consistono nell'assegnazione di un valore predefinito e nella creazione di una regola di convalida.

Valori predefiniti dei campi

Quando si progetta un database, si può scegliere di assegnare un valore predefinito a un campo o a un controllo. Access fornisce quindi il valore predefinito quando viene creato un nuovo record contenente il campo o quando viene creato un oggetto che contiene il controllo. Le espressioni nella tabella seguente rappresentano i valori predefiniti di esempio per un campo o un controllo. Se un controllo è associato a un campo incluso in una tabella e il campo ha un valore predefinito, il valore predefinito del controllo avrà la precedenza.

Campo

Espressione

Valore di campo predefinito

Quantity

1

1

Region

"MT"

MT

Region

"New York, N.Y."

New York, N.Y. Se il valore contiene segni di punteggiatura, sarà necessario racchiuderlo tra virgolette.

Fax

""

Stringa di lunghezza zero che indica che, per impostazione predefinita, questo campo non deve contenere un valore Null, ma deve essere vuoto

OrderDate

Date( )

Data odierna

DueDate

Date() + 60

Data successiva di 60 giorni alla data odierna

Inizio pagina

Regole di convalida per campo

È possibile creare una regola di convalida per un campo o un controllo usando un'espressione. Quindi, Access applica la regola quando vengono immessi dati nel campo o nel controllo. Per creare una regola di convalida, modificare la proprietà ValidoSe del campo o del controllo. Si consiglia anche di impostare la proprietà MessaggioErrore, che contiene il testo visualizzato in Access quando viene violata la regola di convalida. Se non si imposta la proprietà MessaggioErrore, Access visualizza un messaggio di errore predefinito.

Gli esempi nella tabella seguente mostrano le espressioni di regole di convalida per la proprietà ValidoSe e il testo associato per la proprietà MessaggioErrore.

Proprietà ValidoSe

Proprietà MessaggioErrore

<> 0

Immettere un valore diverso da zero.

0 Or > 100

Il valore deve essere uguale a 0 o maggiore di 100.

Like "K???"

Il valore deve essere costituito da una stringa di quattro caratteri che inizia con la lettera K.

< #1/1/2017#

Immettere una data antecedente a 01/01/2017.

>= #1/1/2017# And < #1/1/2008#

La data deve essere compresa nell'anno 2017.

Per altre informazioni sulla convalida di dati, vedere l'articolo Creare una regola di convalida per convalidare i dati in un campo.

Inizio pagina

Espressioni di macro

In alcuni casi si potrebbe voler eseguire un'azione o una serie di azioni in una macro solo se una determinata condizione è vera. Ad esempio, si supponga di voler eseguire una determinata azione solo quando il valore della casella di testo Counter è 10. Per definire la condizione nella colonna Condizione della macro si usa l'espressione seguente:

[Counter]=10

Come per la proprietà ValidoSe, l'espressione nella colonna Condizione è un'espressione condizionale. Deve restituire un valore True o False. L'azione viene eseguita solo quando la condizione è vera.

Suggerimento   Per forzare Access a ignorare temporaneamente un'azione, digitare False come condizione. Questa operazione può essere utile quando si cercano problemi in una macro.

Usare questa espressione per eseguire l'azione

Se

[City]="Paris"

Paris è il valore City nel campo della maschera da cui è stata eseguita la macro.

DCount("[OrderID]", "Orders") > 35

Il numero totale di voci nel campo OrderID della tabella Orders è maggiore di 35.

DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3

Il numero totale di voci nella tabella Order Details il cui campo OrderID corrisponde al campo OrderID della maschera Orders è maggiore di tre.

[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017#

Il valore del campo ShippedDate della maschera da cui viene eseguita la macro non è antecedente al 2 febbraio 2017 né successivo al 2 marzo 2017.

Forms![Products]![UnitsInStock] < 5

Il valore del campo UnitsInStock della maschera Products è minore di 5.

IsNull([FirstName])

Il valore FirstName della maschera da cui viene eseguita la macro è Null, ovvero non contiene alcun valore. Questa espressione equivale a [FirstName] Is Null.

[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100

Il valore del campo CountryRegion della maschera da cui viene eseguita la macro è UK e il valore del campo TotalOrds della maschera SalesTotals è maggiore di 100.

[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5

Il valore del campo CountryRegion della maschera da cui viene eseguita la macro è France, Italy o Spain e il codice postale non è costituito da 5 caratteri.

MsgBox("Confirm changes?",1)=1

Si fa clic su OK in una finestra di dialogo visualizzata dalla funzione MsgBox. Se si fa clic su Annulla nella finestra di dialogo, Access ignora l'azione.

Inizio pagina

Vedere anche

Usare il Generatore di espressioni

Introduzione alle espressioni

Creare un'espressione

Guida alla sintassi delle espressioni

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×