Esempi di espressioni

Questo articolo fornisce esempi di espressioni di Access. Le espressioni sono una combinazione di operatori logici e 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 per un campo o un controllo.

Nota : Le procedure di base descritte in questo articolo consentono di creare espressioni, ma non costituiscono una guida completa all'utilizzo degli strumenti di Access per la creazione di espressioni. Per altre informazioni sulla creazione di espressioni, vedere l'articolo Creare un'espressione.

In questo articolo

Informazioni sulle espressioni

Esempi di espressioni usate in maschere e report

Esempi di espressioni usate in query e filtri

Esempi di espressioni di valori predefiniti

Esempi di espressioni di regole di convalida per i campi

Esempi di espressioni di condizioni di macro

Informazioni sulle espressioni

In Access il termine espressione è sinonimo di formula. Un'espressione è costituita da un certo numero di elementi consentiti che possono essere usati singolarmente o in combinazione per produrre un risultato. Questi elementi includono:

  • Identificatori, ovvero 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, ovvero valori invariabili , ad esempio stringhe di testo o numeri che non vengono calcolati da un'espressione.

È possibile usare le espressioni in diversi modi, ad esempio per eseguire un calcolo, recuperare il valore di un controllo o fornire criteri a una query.

Per altre informazioni su come e quando usare le espressioni, vedere l'articolo Creare un'espressione.

Inizio pagina

Esempi di espressioni usate in 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.

La procedura seguente spiega come immettere un'espressione in un controllo casella di testo in una maschera o in un report esistente.

Creare un controllo calcolato

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla maschera o report da modificare, quindi scegliere Visualizzazione Struttura Icona del pulsante nel menu di scelta rapida.

  2. Nella maschera o nel report fare clic con il pulsante destro del mouse sul controllo casella di testo da modifica, e non sull'etichetta associata alla casella di testo, quindi scegliere Proprietà nel menu di scelta rapida.

  3. Se necessario, fare clic sulla scheda Tutte o Dati. In entrambe le schede è presente la proprietà Origine controllo.

  4. Fare clic sulla casella accanto alla proprietà Origine controllo e digitare l'espressione. Ad esempio, è possibile copiare e incollare un'espressione della colonna Espressione della tabella nella sezione seguente.

  5. Chiudere la finestra delle proprietà.

Espressioni che combinano o modificano il 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/D"

Visualizza N/D.

=[Nome] & " " & [Cognome]

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

=Left([NomeProdotto], 1)

Viene utilizzata la funzione Left per visualizzare il primo carattere del valore di un campo o controllo denominato NomeProdotto.

=Right([CodiceBene], 2)

Viene utilizzata la funzione Right per visualizzare gli ultimi 2 caratteri del valore di un campo o controllo denominato CodiceBene.

=Trim([Indirizzo])

Viene utilizzata la funzione Trim per visualizzare il valore del controllo Indirizzo, rimuovendo gli eventuali spazi iniziali o finali.

=IIf(IsNull([Areageografica]), [Città] & " " & [CAP], [Città] & " " & [Areageografica] & " " & [CAP])

Usa la funzione IIf per visualizzare i valori dei controlli Città e CAP se il valore del controllo Areageografica è Null. In caso contrario, visualizza i valori dei controlli Città, Areageografica e CAP separati da spazi.

=[Città] & (" " + [Areageografica]) & " " & [CAP]

Usa l'operatore + e la propagazione del valore Null per visualizzare i valori dei controlli Città e CAP se il valore del campo o del controllo Areageografica è Null. In caso contrario, visualizza i valori dei campi o dei controlli Città, Areageografica e CAP 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.

Espressioni in 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 di esempio

=[Page]

1

="Pagina " & [Page]

Riquadro attività Verifica accessibilità con i risultati del controllo

="Pagina " & [Page] & " di " & [Pages]

Pagina 1 di 3

=[Page] & " di " & [Pages] & " Pagine"

1 di 3 Pagine

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

1/3 Pagine

=[Paese/Areageografica] & " - " & [Page]

Regno Unito - 1

=Format([Page], "000")

001

="Stampa del: " & Date()

Stampa del: 31/12/07

Espressioni che eseguono operazioni aritmetiche

È possibile usare le espressioni per aggiungere, sottrarre, moltiplicare e dividere i valori in due o più campi o controlli. È anche possibile usare le espressioni per eseguire operazioni aritmetiche sulle date. Si supponga, ad esempio, di avere un campo di tabella di tipo Data/ora denominato DataRichiesta. L'espressione =[DataRichiesta] - 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 DataRichiesta.

Espressione

Risultato

= [Subtotale]+[SpeseTrasporto]

Somma dei valori dei campi o dei controlli Subtotale e SpeseTrasporto.

=[DataRichiesta]-[DataSpedizione]

Intervallo compreso tra i valori dei campi o dei controlli DataRichiesta e DataSpedizione.

=[Prezzo]*1,06

Il prodotto del valore del campo o del controllo Prezzo moltiplicato per 1,06, che aggiunge il 6% al valore Prezzo.

=[Quantità]*[Prezzo]

Il prodotto dei valori dei campi o dei controlli Quantità e Prezzo.

=[TotaleDipendenti]/[TotalePaeseAreageografica]

Quoziente dei valori dei campi o dei controlli TotaleDipendenti e TotalePaeseAreageografica.

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, ovvero 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([Subtotale])+Nz([SpeseTrasporto]).

Per altre informazioni sulla funzione, vedere l'articolo Funzione Nz.

Espressioni che fanno riferimento a valori in altri campi o 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![Ordini]![IDOrdine]

Valore del controllo IDOrdine della maschera Ordini.

=Forms![Ordini]![Sottomaschera ordini].Form![SubtotaleOrdini]

Valore del controllo SubtotaleOrdini della sottomaschera denominata Sottomaschera ordini nella maschera Ordini.

=Forms![Ordini]![Sottomaschera ordini]![IDProdotto].Column(2)

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

=Forms![Ordini]![Sottomaschera ordini]![Prezzo] * 1,06

Prodotto del valore del controllo Prezzo della sottomaschera denominata Sottomaschera ordini nella maschera Ordini moltiplicato per 1,06, che aggiunge il 6% al valore del controllo Prezzo.

=Parent![IDOrdine]

Valore del controllo IDOrdine 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.

Per altre informazioni su questa proprietà, vedere l'articolo Proprietà Report.

Espressione

Risultato

=Report![Fattura]![IDOrdine]

Valore di un controllo denominato IDOrdine incluso in un report denominato Fattura.

=Report![Riepilogo]![Sottoreport riepilogo]![TotaleVendite]

Valore del controllo TotaleVendite del sottoreport denominato Sottoreport riepilogo nel report Riepilogo.

=Parent![IDOrdine]

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

Espressioni che eseguono il conteggio, la somma e la 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 alcuni modi per usare funzioni quali Avg, Count e Sum.

Espressione

Descrizione

=Avg([SpeseTrasporto])

Viene utilizzata la funzione Media per visualizzare la media dei valori di un campo di tabella o di un controllo denominato Carico.

=Conteggio([IDOrdine])

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

=Sum([Vendite])

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

=Sum([Quantità]*[Prezzo])

Usa la funzione Sum per visualizzare la somma del prodotto dei valori nei controlli Quantità e Prezzo.

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

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

Nota : Se si imposta la proprietà Formato del controllo su Percentuale, 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.

Espressioni che eseguono il conteggio, la somma e la ricerca di valori in modo selettivo con funzioni di aggregazione sui domini

Usare un tipo di funzione denominata funzione di aggregazione 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 in un campo di tabella con i valori in un controllo in una maschera.

Espressione

Descrizione

=DLookup("[NomeContatto]", "[Fornitori]", "[IDFornitore] = " & Forms("Fornitori")("[IDFornitore]"))

Usa la funzione DLookup per restituire il valore del campo NomeContatto incluso nella tabella Fornitori quando il valore del campo IDFornitore incluso nella tabella corrisponde al valore del controllo IDFornitore nella maschera Fornitori.

=DLookup("[NomeContatto]", "[Fornitori]", "[IDFornitore] = " & Forms![Nuovi fornitori]![IDFornitore])

Usa la funzione DLookup per restituire il valore del campo NomeContatto incluso nella tabella Fornitori quando il valore del campo IDFornitore incluso nella tabella corrisponde al valore del controllo IDFornitore nella maschera Nuovi fornitori.

=DSum("[ImportoOrdine]", "[Ordini]", "[IDCliente] = 'RATTC'")

Usa la funzione DSum per restituire la somma totale dei valori inclusi nel campo ImportoOrdine della tabella Ordini quando IDCliente corrisponde a RATTC.

=DCount("[Ritirati]","[Beni]","[Ritirati]=Sì")

Usa la funzione DCount per restituire il numero di valori Sì inclusi nel campo Ritirati, un campo Sì/No, della tabella Beni.

Espressioni che modificano e calcolano le date

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-gg-aa, dove mm rappresenta il mese (da 1 a 12), gg rappresenta il giorno (da 1 a 31) e aa rappresenta le ultime due cifre dell'anno, compreso tra il 1980 e il 2099.

=Format(Now(), "ww")

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

=DatePart("aaaa", [DataOrdine])

Viene utilizzata la funzione DatePart per visualizzare il valore del controllo DataOrdine con il formato dell'anno esteso.

=DateAdd("a", -10, [DataImpegno])

Viene utilizzata la funzione DateAdd per visualizzare una data antecedente di 10 giorni al valore del controllo DataImpegno.

=DateDiff("g", [DataOrdine], [DataSpedizione])

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

=[DataFattura] + 30

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

Espressioni condizionali che restituiscono uno o due valori possibili

Le espressioni di esempio nella tabella seguente usano la funzione IIfper 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([Confermato] = "Sì", "Ordine confermato", "Ordine non confermato")

Usa la funzione IIf (Immediate If) per visualizzare il messaggio "Ordine confermato" se il valore del controllo Confermato è . In caso contrario, visualizza il messaggio "Ordine non confermato".

=IIf(IsNull([Paese/Areageografica]), " ", [Paese])

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

=IIf(IsNull([Areageografica]), [Città] & " " & [CAP], [Città] & " " & [Areageografica] & " " & [CAP])

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

=IIf(IsNull([DataRichiesta]) Or IsNull([DataSpedizione]), "Controllare data mancante", [DataRichiesta] - [DataSpedizione])

Usa le funzioni IIf e IsNull per visualizzare il messaggio "Controllare data mancante" se il risultato della sottrazione di DataSpedizione da DataRichiesta è Null. In caso contrario, visualizza l'intervallo compreso tra i valori di data dei controlli DataRichiesta e DataSpedizione.

Inizio pagina

Esempi di espressioni usate in 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 tra tali date.

Le sezioni seguenti descrivono come aggiungere un campo calcolato a una query e forniscono esempi di espressioni da usare nelle query.

Aggiungere un campo calcolato alla visualizzazione Struttura query

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query che si desidera modificare e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Fare clic nella cella Campo della colonna in cui creare il campo calcolato. È possibile immettere un nome per il campo seguito da due punti oppure digitare l'espressione. Se non si immette un nome, Access aggiunge Exprn:, dove n è un numero sequenziale.

  3. Digitare l'espressione.

    -oppure-

    Fare clic su Generatore nel gruppo Imposta query della scheda Struttura per avviare il Generatore di espressioni.

    Per altre informazioni sull'utilizzo del Generatore di espressioni, vedere l'articolo Creare un'espressione.

Espressioni che modificano il testo in una query o in un filtro

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

NomeCompleto: [Nome] & " " & [Cognome]

Crea un campo denominato NomeCompleto che visualizza i valori inclusi nei campi Nome e Cognome separati da uno spazio.

Indirizzo2: [Città] & " " & [Areageografica] & " " & [CAP]

Crea un campo denominato Indirizzo2 che visualizza i valori inclusi nei campi Città, Areageografica e CAP separati da spazi.

ProdottoIniziale:Left([NomeProdotto], 1)

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

CodiceTipo: Right([CodiceBene], 2)

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

Prefisso: Mid([Telefono],2,3)

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

Espressioni che eseguono operazioni aritmetiche nei campi calcolati

È 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 DataRichiesta. L'espressione =[DataRichiesta] - 2 restituisce un valore Data/ora antecedente di due giorni al valore del campo DataRichiesta.

Espressione

Descrizione

SpeseTrasportoPrincipali: [SpeseTrasporto] * 1.1

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

ImportoOrdine: [Quantità] * [PrezzoUnitario]

Crea un campo denominato ImportoOrdine, quindi visualizza il prodotto dei valori inclusi nei campi Quantità e PrezzoUnitario.

TempoDiRisposta: [DataRichiesta] - [DataSpedizione]

Crea un campo denominato TempoDiRisposta, quindi visualizza la differenza tra i valori inclusi nei campi DataRichiesta e DataSpedizione.

TotaleMagazzino: [ScorteInMagazzino] + [QuantitàOrdinata]

Crea un campo denominato TotaleMagazzino, quindi visualizza la somma dei valori inclusi nei campi ScorteInMagazzino e QuantitàOrdinata.

PercentualeSpeseTrasporto: Sum([SpeseTrasporto])/Sum([Subtotale]) *100

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

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à Formato del campo su Percentuale, 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.

Espressioni che modificano le date ed eseguono calcoli con le date nei campi calcolati

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

Ritardo: DateDiff("d", [DataOrdine], [DataSpedizione])

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

AnnoAssunzione: DatePart("aaaa",[DataAssunzione])

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

MenoTrenta: Date( )- 30

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

Espressioni che eseguono il conteggio, la somma e la media di valori usando le funzioni di aggregazione o le funzioni di aggregazione sui domini di 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

ConteggioRighe:Count(*)

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

PercentualeSpeseTrasporto: Sum([SpeseTrasporto])/Sum([Subtotale]) *100

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

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

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

MediaSpeseTrasporto: DAvg("[SpeseTrasporto]", "[Ordini]")

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

Espressioni che consentono di usare campi con informazioni mancanti (campi con valori Null)

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

PaeseAreageograficaCorrente:IIf(IsNull([PaeseAreageografica]), " ", [PaeseAreageografica])

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

TempoDiRisposta: IIf(IsNull([DataRichiesta] - [DataSpedizione]), "Controllare data mancante", [DataRichiesta] - [DataSpedizione])

Crea un campo denominato TempoDiRisposta, quindi usa le funzioni IIf e IsNull per visualizzare il messaggio "Controllare data mancante" se il valore incluso nel campo DataRichiesta o DataSpedizione è Null. In caso contrario, visualizza la differenza di data.

VenditeSemestrali: Nz([VenditeTrim1]) + Nz([VenditeTrim2])

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

Espressione che usa una sottoquery per creare un campo calcolato

È 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

Categoria: (SELECT [NomeCategoria] FROM [Categorie] WHERE [Prodotti].[IDCategoria]=[Categorie].[IDCategoria])

Crea un campo denominato Categoria, quindi visualizza NomeCategoria, se il valore IDCategoria della tabella Categorie è uguale al valore IDCategoria della tabella Prodotti.

Espressioni che definiscono i criteri e limitano i record nel set di risultati

È possibile usare un'espressione per definire i criteri per una query. Access restituisce quindi solo le righe che soddisfano i criteri. I passaggi descritti in questa sezione forniscono le informazioni di base sull'aggiunta di criteri a una query, mentre le tabelle di questa sezione forniscono esempi di criteri per associare i valori di data e testo.

Aggiungere criteri a una query

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query da modificare, quindi scegliere Visualizzazione Struttura Icona del pulsante nel menu di scelta rapida.

  2. Nella riga Criteri della griglia di struttura fare clic sulla cella della colonna da usare, quindi digitare i criteri.

    Per ingrandire l'area in cui digitare l'espressione, premere MAIUSC+F2 per visualizzare la casella Zoom.

    -oppure-

    Nel gruppo Imposta query della scheda Struttura fare clic su Generatore Icona del pulsante per avviare il Generatore di espressioni e creare l'espressione.

Nota : Quando si crea un'espressione che definisce criteri, non anteporre l'operatore = all'espressione.

Per altre informazioni sull'utilizzo del Generatore di espressioni, vedere l'articolo Creare un'espressione.

Espressioni che consentono di ottenere una corrispondenza con i valori di testo interi o parziali

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

CittàSpedizione

"Londra"

Visualizza gli ordini spediti a Londra.

CittàSpedizione

"Londra" Or "Bristol"

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

PaeseAreageograficaSpedizione

In("Canada", "Regno Unito")

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

PaeseAreageograficaSpedizione

Not "Stati Uniti"

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

NomeProdotto

Not Like "C*"

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

NomeSocietà

>="N"

Visualizza gli ordini spediti a società i cui nomi iniziano con lettere comprese tra N e Z.

CodiceProdotto

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

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

NomeSpedizione

Like "S*"

Visualizza gli ordini spediti a clienti i cui nomi iniziano con la lettera S.

Espressioni che usano le date nei criteri di corrispondenza

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. Per informazioni sull'utilizzo delle funzioni in queste espressioni di esempio, fare clic sui collegamenti agli argomenti per le diverse funzioni.

Campo

Espressione

Descrizione

DataSpedizione

#02/02/2007#

Visualizza gli ordini spediti il 2 febbraio 2007.

DataSpedizione

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.

DataOrdine

< Date( ) - 30

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

DataOrdine

Year([DataOrdine])=2007

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

DataOrdine

DatePart("t", [DataOrdine])=4

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

DataOrdine

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

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

DataOrdine

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

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

DataSpedizione

Between #05/01/2007# And #10/01/2007#

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

DataRichiesta

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.

DataDiNascita

Month([DataDiNascita])=Month(Date())

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

Espressioni che consentono di ottenere una corrispondenza con un valore mancante (Null) o una stringa di lunghezza zero

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

AreageograficaSpedizione

Is Null

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

AreageograficaSpedizione

Is Not Null

Visualizza gli ordini dei clienti il cui campo AreageograficaSpedizione 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).

Espressioni che usano i criteri per la corrispondenza con i record

L'operatore Like offre molta flessibilità quando si cerca di associare le righe che seguono i criteri, 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

NomeSpedizione

Like "S*"

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

NomeSpedizione

Like "*Importazioni"

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

NomeSpedizione

LIKE "[A-D]*"

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

NomeSpedizione

Like "*ar*"

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

NomeSpedizione

Like "Villa Dewe?"

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

NomeSpedizione

Not Like "A*"

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

Espressioni che consentono di ottenere una corrispondenza con le righe in base al risultato di una funzione di aggregazione sui domini

Usare una funzione di aggregazione 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

SpeseTrasporto

> (DStDev("[SpeseTrasporto]", "Ordini") + DAvg("[SpeseTrasporto]", "Ordini"))

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.

Quantità

> DAvg("[Quantità]", "[Dettagli ordine]")

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

Espressioni che consentono di ottenere una corrispondenza in base ai risultati di 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

Visualizza

PrezzoUnitario

(SELECT [PrezzoUnitario] FROM [Prodotti] WHERE [NomeProdotto] = "Anisetta")

Prodotti i cui prezzi sono uguali al prezzo del prodotto Anisetta.

PrezzoUnitario

>(SELECT AVG([PrezzoUnitario]) FROM [Prodotti])

Prodotti il cui prezzo unitario è superiore alla media.

Stipendio

> ALL (SELECT [Stipendio] FROM [Dipendenti] WHERE ([Titolo] LIKE "*Direttore*") OR ([Titolo] LIKE "*Vicepresidente*"))

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

TotaleOrdini: [PrezzoUnitario] * [Quantità]

> (SELECT AVG([PrezzoUnitario] * [Quantità]) FROM [Dettagli ordine])

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

Espressioni da usare nelle 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

Titolo

"Venditore"

Modifica un valore di testo in Venditore.

InizioProgetto

#10/08/07#

Modifica un valore di data in 10/08/07.

Ritirato

Modifica un valore No in Sì in un campo Sì/No.

NumeroParte

"NP" & [NumeroParte]

Aggiunge NP all'inizio di ogni numero parte specificato.

TotaleVoce

[PrezzoUnitario] * [Quantità]

Calcola il prodotto di PrezzoUnitario per Quantità.

SpeseTrasporto

[Spese Trasporto] * 1,5

Aumenta le spese di trasporto del 50%.

Vendite

DSum("[Quantità] * [PrezzoUnitario]",
"Dettagli ordine", "[IDProdotto]=" & [IDProdotto])

Se i valori IDProdotto inclusi nella tabella corrente corrispondono ai valori IDProdotto inclusi nella tabella Dettagli ordine, i totali delle vendite vengono aggiornati in base al prodotto di Quantità per PrezzoUnitario.

CAPSpedizione

Right([CAPSpedizione], 5)

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

PrezzoUnitario

Nz([PrezzoUnitario])

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

Espressioni usate nelle 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 [Nome],[Cognome] FROM [Dipendenti] WHERE [Cognome]="Romani"

Visualizza i valori inclusi nei campi Nome e Cognome dei dipendenti il cui cognome è Romani.

SELECT [IDProdotto],[NomeProdotto] FROM [Prodotti] WHERE [IDCategoria]=Forms![Nuovi prodotti]![IDCategoria];

Visualizza i valori nei campi IDProdotto e NomeProdotto nella tabella Prodotti per i record in cui il valore IDCategoria corrisponde al valore IDCategoria specificato in una maschera Nuovi prodotti aperta.

SELECT Avg([PrezzoComplessivo]) AS [Prezzo complessivo medio] FROM [Dettagli ordine complessivi] WHERE [PrezzoComplessivo]>1000;

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

SELECT [IDCategoria], Count([IDProdotto]) AS [ConteggioIDProdotto] FROM [Prodotti] GROUP BY [IDCategoria] HAVING Count([IDProdotto])>10;

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

Inizio pagina

Esempi di espressioni con valori predefiniti

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.

Aggiungere un valore predefinito per un campo incluso in una tabella

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella che si desidera modificare e scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Fare clic sul campo da modificare, quindi fare clic nella casella della proprietà Valore predefinito della scheda Generale.

  3. Digitare l'espressione oppure fare clic sul pulsante Genera Pulsante Generatore a destra della casella della proprietà per creare un'espressione usando il Generatore di espressioni.

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

Quantità

1

1

Areageografica

"MT"

MT

Areageografica

"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

Data ordine

Date( )

Data odierna

Scadenza

Date() + 60

Data successiva di 60 giorni alla data odierna

Inizio pagina

Esempi di espressioni di regole di convalida per i campi

È 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.

Aggiungere una regola di convalida a un campo

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella che si desidera modificare e scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Fare clic sul campo da modificare.

  3. Fare clic sulla casella della proprietà Valido se nella parte inferiore della finestra di progettazione della tabella.

  4. Digitare l'espressione oppure fare clic sul pulsante Genera Pulsante Generatore a destra della casella della proprietà per creare un'espressione usando il Generatore di espressioni.

    Nota : Non anteporre l'operatore = all'espressione quando si crea una regola di convalida.

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 zero o maggiore di 100.

Like "K???"

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

< #01/01/2007#

Immettere una data antecedente a 01/01/2007.

>= #01/01/2007# And < #01/01/2008#

La data deve essere compresa nell'anno 2007.

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

Inizio pagina

Esempi di espressioni di condizioni 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 Contatore è 10. Per definire la condizione nella colonna Condizione della macro si usa l'espressione [Contatore]=10.

Aggiungere una condizione per un'azione di macro

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla macro da modificare, quindi scegliere Visualizzazione Struttura nel menu di scelta rapida.

  2. Se la colonna Condizione non viene visualizzata nella finestra Progettazione macro, fare clic su Condizioni nel gruppo Mostra/Nascondi della scheda Struttura.

  3. Fare clic sulla cella Condizione dell'azione di macro da modificare, quindi digitare l'espressione condizionale.

  4. Salvare le modifiche apportate e chiudere la macro.

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

Usare questa espressione per eseguire l'azione

Se

[Città]="Parigi"

Parigi è il valore Città nel campo della maschera da cui è stata eseguita la macro.

DCount("[IDOrdine]", "Ordini") > 35

Il numero totale di voci nel campo IDOrdine della tabella Ordini è maggiore di 35.

DCount("*", "[Dettagli ordine]", "[IDOrdine]=" & Forms![Ordini]![IDOrdine]) > 3

Il numero totale di voci nella tabella Dettagli ordine il cui campo IDOrdine corrisponde al campo IDOrdine della maschera Ordini è maggiore di tre.

[DataSpedizione] Between #2-Feb-2007# And #2-Mar-2007#

Il valore del campo DataSpedizione della maschera da cui viene eseguita la macro non è antecedente al 2 febbraio 2007 o successivo al 2 marzo 2007.

Forms![Prodotti]![ScorteInMagazzino] < 5

Il valore del campo ScorteInMagazzino della maschera Prodotti è minore di 5.

IsNull([Nome])

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

[PaeseAreageografica]="UK" And Forms![TotaliVendite]![TotaleOrdini]>100

Il valore del campo PaeseAreageografica della maschera da cui viene eseguita la macro è UK e il valore del campo TotaleOrdini della maschera TotaliVendite è maggiore di 100.

[PaeseAreageografica] In ("Francia", "Italia", "Spagna") And Len([CAP])<>5

Il valore del campo PaeseAreageografica della maschera da cui viene eseguita la macro è Francia, Italia o Spagna e il codice postale non è costituito da 5 caratteri.

MsgBox("Confermare le modifiche?",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.

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

Inizio pagina

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

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

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

×