Prof. Sandro Scirocco
Classe V sez. A informatica a.s. 2021/2022
Microsoft Access è un Relational Data Base Management System (cioè un DBMS per database relazionali) realizzato da Microsoft; è incluso nel pacchetto Microsoft Office ed unisce il motore Microsoft Jet Data Base Engine con un’interfaccia grafica.
La struttura di memorizzazione dei dati segue il modello relazionale: i dati sono immagazzinati in tabelle composte da un numero elevato di record (righe) ed ogni record contiene i dati distinti per campi; le tabelle possono essere unite tra di loro attraverso relazioni.
A differenza di altri ambienti di sviluppo, in Access un unico file, che nella versione 2007 ha estensione accdb,comprende tutti gli elementi utilizzabili per lo sviluppo di applicazioni complete: tabelle, query, maschere, report, macro, pagine e moduli.
- Le tabelle sono i contenitori dove vengono memorizzati i
- Le query sono gli strumenti idonei all'interrogazione ed alla manipolazione dei
- Le maschere (o form) sono gli elementi grafici utili all’interazione da parte degli utenti con i dati delle tabelle e delle
- I report consentono la stampa dei dati contenuti nelle tabelle o dei risultati delle
- Le macro possono contenere semplici sequenze di comandi, gli stessi che è possibile eseguire attraverso i menu di Access, in modo da
- Le pagine permettono la pubblicazione dei dati attraverso un server
- I moduli possono contenere sottoprogrammi scritti in VBA (Visual Basic for Application, il Visual Basic dei programmi di Office) e richiamabili da uno qualsiasi degli altri elementi dell'applicazione.
Esempi di criteri di query
Un criterio di query consiste in una regola che identifica i record da includere nei risultati della query. Non tutte le query devono includere criteri, tuttavia se non si desidera visualizzare tutti i record memorizzati nell'origine record sottostante, è necessario aggiungere criteri alla query in fase di progettazione.
I criteri sono simili a formule, ovvero sono costituiti da stringhe contenenti riferimenti a campi, operatori e costanti. In Microsoft Office Access 2007 i criteri di query sono inoltre detti espressioni.
Nelle tabelle seguenti vengono illustrati alcuni criteri di esempio e ne viene descritto l'utilizzo.
Criteri |
Descrizione |
|
||||||||||
>25 AND <50 |
Questo criterio si applica ai campi di tipo Numero, ad esempio Prezzo o Scorte. Il criterio include solo i record nei quali il campo Prezzo o Scorte contiene un valore maggiore di 25 e minore di 50. |
|||||||||||
Is Null |
È possibile applicare questo criterio a qualsiasi tipo di campo per visualizzare i record in cui il valore del campo è Null. |
|||||||||||
Criteri per i campi di tipo Testo, Memo e Collegamento ipertestuale |
||||||||||||
Per includere i record che |
Utilizzare il criterio |
Risultato della query |
||||||||||
Corrispondono esattamente a un valore, ad esempio Cina |
"Cina" |
Restituisce i record in cui il campo Paese è impostato su Cina. |
||||||||||
Non corrispondono a un valore, ad esempio Messico |
NOT "Messico" |
Restituisce i record in cui il campo Paese è impostato su un valore diverso da Messico. |
||||||||||
Iniziano con la stringa specificata, ad esempio I |
Like U* |
Restituisce i record in cui il campo Paese contiene un nome che inizia con U, ad esempio Ungheria, Ucraina e così via.
Nota Quando viene utilizzato in un'espressione, l'asterisco (*) rappresenta una stringa qualsiasi di caratteri. L'asterisco è inoltre detto carattere jolly. |
||||||||||
Non iniziano con la stringa specificata, ad esempio I |
Not Like U* |
Restituisce i record in cui il campo Paese contiene un nome che inizia con un carattere diverso da "U". |
||||||||||
Contengono la stringa specificata, ad esempio |
LIKE "*Corea*" |
Restituisce i record in cui il campo Paese |
||||||||||
Corea |
|
contiene la stringa "Corea". |
||||||||||
Non contengono la stringa specificata, ad esempio Corea |
NOT LIKE "*Corea*" |
Restituisce i record in cui il campo Paese non contiene la stringa "Corea". |
||||||||||
Terminano con la stringa specificata, ad esempio "ina" |
LIKE "*ina" |
Restituisce i record in cui il campo Paese contiene un nome che termina in "ina", ad esempio Cina e Argentina. |
||||||||||
Non terminano con la stringa specificata, ad esempio "*ina" |
NOT LIKE "*ina" |
Restituisce i record in cui il campo Paese contiene un nome che non termina in "ina", ad esempio Cina e Argentina. |
||||||||||
Contengono valori Null (o mancanti) |
Is Null |
Restituisce i record che non contengono alcun valore nel campo. |
||||||||||
Non contengono valori Null |
Is Not Null |
Restituisce i record in cui è presente un valore nel campo. |
||||||||||
Contengono stringhe di lunghezza zero |
"" (coppia di virgolette) |
Restituisce i record in cui il campo è impostato su un valore vuoto diverso da Null.. |
||||||||||
Non contengono stringhe a lunghezza zero |
NOT "" |
Restituisce i record in cui il campo Paese contiene un valore non vuoto. |
||||||||||
Contengono valori Null o stringhe di lunghezza zero |
"" Or Is Null |
Restituisce i record in cui il campo non contiene valori o è impostato su un valore vuoto. |
||||||||||
Is not empty or blank |
Is Not Null And Not "" |
Restituisce i record in cui il campo Paese contiene un valore non vuoto o diverso da Null. |
||||||||||
Seguono un determinato valore, ad esempio Messico, se in ordine alfabetico |
>= "Messico" |
Restituisce i record di tutti i paesi, a partire da Messico fino alla fine dell'alfabeto. |
||||||||||
Contengono uno dei valori inclusi in un elenco di valori |
In("Francia", "Cina", "Germania", "Giappone") |
Restituisce i record contenenti i nomi dei paesi specificati nell'elenco. |
||||||||||
Corrispondono a uno di due valori, ad esempio |
"Italia" OR "Irlanda" |
Restituisce tutti i record contenenti Italia e Irlanda. |
||||||||||
Italia o Irlanda |
|
|
||||||||||
Contengono uno dei valori inclusi in un elenco di valori |
In("Francia", "Cina", "Germania", "Giappone") |
Restituisce i record contenenti i nomi dei paesi specificati nell'elenco. |
||||||||||
Corrispondono a uno schema specifico |
LIKE "Ci??" |
Restituisce i record contenenti nomi di paese, quali Cina e Cile, composti da quattro caratteri dei quali i primi due sono "Ci".
Nota I caratteri ? e _, quando vengono utilizzati in un'espressione, rappresentano un singolo carattere e sono detti anche caratteri jolly. Il carattere _ non può essere utilizzato nella stessa espressione che contiene il carattere ? e neppure in un'espressione che contiene il carattere jolly *. È possibile utilizzare il carattere jolly _ in un'espressione che contiene anche il carattere jolly %. |
||||||||||
Soddisfano i requisiti di lunghezza |
Len([Paese]) > 10 |
Restituisce i record contenenti paesi il cui nome è più lungo di 10 caratteri. |
||||||||||
Criteri per i campi di tipo Numerico, Valuta e Contatore |
||||||||||||
per includere i record che |
Utilizzare il criterio |
Risultato della query |
||||||||||
Corrispondono esattamente a un valore, ad esempio 100 |
100 |
Restituisce i record in cui il prezzo unitario del prodotto è pari a € 100. |
||||||||||
Non corrispondono a un valore, ad esempio 1000 |
NOT 1000 |
Restituisce i record in cui il prezzo unitario del prodotto non corrisponde a € 1000. |
||||||||||
Contengono un valore minore di un altro valore specificato, ad esempio 100 |
< 100 <= 100 |
Restituisce i record in cui il prezzo unitario è minore di € 100 (<100). La seconda espressione (<=100) visualizza i record in cui il prezzo unitario è minore o uguale a € 100. |
||||||||||
Contengono un valore maggiore di un altro valore specificato, ad esempio 99,99 |
>99,99 >=99,99 |
Restituisce i record in cui il prezzo unitario è maggiore di € 99,99 (>99,99). La seconda espressione visualizza i record in cui il prezzo unitario è maggiore o uguale a € 99,99. |
||||||||||
Contengono uno di due valori, ad esempio 20 o 25 |
20 OR 25 |
Restituisce i record in cui il prezzo unitario corrisponde a € 20 o € 25. |
||||||||||
Contengono un valore compreso in un determinato intervallo |
>49,99 AND <99,99 -oppure- Between 50 AND 100 |
Restituisce i record in cui il prezzo unitario è compreso tra € 49,99 e € 99,99 (non inclusi). |
||||||||||
Contengono un valore esterno a un determinato intervallo |
<50 OR >100 |
Restituisce i record in cui il prezzo unitario non è compreso tra € 50 e € 100. |
||||||||||
Contengono uno dei valori specificati |
In(20, 25, 30) |
Restituisce i record in cui il prezzo unitario corrisponde a € 20, € 25 o € 30. |
||||||||||
Contengono un valore che termina con le cifre specificate |
LIKE "*4,99" |
Restituisce i record in cui il prezzo unitario termina con "4,99", ad esempio € 4,99, € 14,99, € 24,99 e così via. Nota I caratteri * e %, quando vengono utilizzati in un'espressione, rappresentano un numero qualsiasi di caratteri e sono detti anche caratteri jolly. |
||||||||||
Criteri per i campi di tipo Data/ora |
||||||||||||
Per includere i record che |
Utilizzare il criterio |
Risultato della query |
||||||||||
Corrispondono esattamente a un valore, ad esempio 2/2/2006 |
#02.02.06# |
Restituisce i record di transazioni avvenute il 2 febbraio 2006. È necessario racchiudere i valori di tipo Data tra caratteri # in modo che Access sia in grado di distinguerli dai dati di tipo Testo. |
||||||||||
Non corrispondono a un |
NOT #3/3/2006# |
Restituisce i record di transazioni |
||||||||||
valore, ad esempio 2/2/2006 |
|
avvenute in un giorno diverso dal 3 febbraio 2006. |
||||||||||
Contengono valori anteriori a una determinata data, ad esempio 2/2/2006 |
<#2/2/2006# |
Restituisce i record di transazioni avvenute prima del 2 febbraio 2006.
Per visualizzare transazioni avvenute prima o nella data specificata, utilizzare l'operatore <= invece di <. |
||||||||||
Contengono valori successivi a una determinata data, ad esempio 2/2/2006 |
>#2/2/2006# |
Restituisce i record di transazioni avvenute dopo il 2 febbraio 2006.
Per visualizzare transazioni avvenute dopo o nella data specificata, utilizzare l'operatore >= invece di >. |
||||||||||
Contengono valori compresi in un determinato intervallo di date |
>#2/2/2006# AND <#4/2/2006# |
Restituisce i record di transazioni avvenute tra il 2 febbraio 2006 e il 4 febbraio 2006.
È inoltre possibile utilizzare l'operatore Between per filtrare un determinato intervallo di valori. Il criterio Between#2/2/2006# AND #4/2/2006# equivale a >#2/2/2006# AND <#4/2/2006# . |
||||||||||
Contengono valori esterni a un determinato intervallo |
<#2/2/2006# OR >#4/2/2006# |
Restituisce i record di transazioni avvenute prima del 2 febbraio 2006 o dopo il 4 febbraio 2006. |
||||||||||
Contengono uno di due valori, ad esempio 2/2/2006 o 3/2/2006 |
#2/2/2006# OR #3/2/2006# |
Restituisce i record di transazioni avvenute il 2 febbraio 2006 o il 3 febbraio 2006. |
||||||||||
Contengono uno di molti valori |
In (#1/2/2006#, #1/3/2006#, #1/4/2006#) |
Restituisce i record di transazioni avvenute in data 1 febbraio 2006, 1 marzo 2006 o 1 aprile 2006. |
||||||||||
|
|
|
||||||||||
Contengono la data corrente |
Date() |
Restituisce i record di transazioni avvenute nel giorno corrente. Se la data corrente è ad esempio 2/2/2006, verranno visualizzati i record in cui il campo Data ordine è impostato sul 2 febbraio 2006. |
|
|||||||||
Contengono la data del giorno precedente |
Date()-1 |
Restituisce i record di transazioni avvenute il giorno precedente a quello corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al giorno 1 febbraio 2006. |
|
|||||||||
Contengono la data del giorno successivo |
Date() + 1 |
Restituisce i record di transazioni che avranno luogo il giorno successivo a quello corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al giorno 3 febbraio 2006. |
|
|||||||||
Contengono una data dei 7 giorni precedenti |
Between Date() and Date()-6 |
Restituisce record di transazioni avvenute durante i sette giorni precedenti. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati record relativi al periodo compreso tra il 24 gennaio 2006 e il 2 febbraio 20006. |
|
|||||||||
Contengono una data anteriore a quella corrente |
< Date() |
Restituisce i record di transazioni avvenute in una data anteriore a quella corrente. |
|
|||||||||
Contengono una data successiva a quella corrente |
> Date() |
Restituisce i record di transazioni che avranno luogo in una data successiva a quella corrente. |
|
|||||||||
Filtro per valori Null (o mancanti) |
Is Null |
Restituisce i record che non contengono la data della transazione. |
|
|||||||||
Filtro per valori non Null |
Is Not Null |
Restituisce i record in cui la data di transazione è nota. |
|
|||||||||