MS Access - Progettoatena.It
MS Access - Progettoatena.It
MS Access - Progettoatena.It
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Esercitazioni di Sistemi<br />
Informativi<br />
Ing. Maurizio Vincini<br />
vincini@dsi.unimo.it<br />
Basi di Dati - <strong>Access</strong><br />
1
<strong>MS</strong> <strong>Access</strong><br />
Un DB<strong>MS</strong> relazionale per Windows<br />
● Quali DB<strong>MS</strong> in ambiente PC:<br />
– dBase (per windows)<br />
– FoxPro (per windows)<br />
– <strong>Access</strong> (per windows)<br />
– SQL Server (client/server)<br />
– Oracle (client/server)<br />
– Informix (client/server)<br />
– ...<br />
– NB: client/server si riferisce a sistemi distribuiti in rete con<br />
elaboratori più potenti che gestiscono i dati (server) e pc<br />
collegati da cui gli utenti richiedono operazioni (client)<br />
Basi di Dati - <strong>Access</strong><br />
2
Caratteristiche di <strong>MS</strong> <strong>Access</strong><br />
● Interazione completamente a finestre<br />
● Funzioni (vista utente):<br />
– creazione e consultazione di tabelle, interfaccia tabellare<br />
– interfaccia a schede personalizzabili (un record per volta)<br />
– interfaccia SQL<br />
– salvataggio e modifica di interrogazioni<br />
– generazione di report<br />
– multiutenza<br />
● Funzioni (vista sistema)<br />
– chiavi primarie e indici<br />
– valori nulli, regole di validità e domini di valori<br />
– gestione vincoli di integrità referenziale<br />
– programmazione<br />
Basi di Dati - <strong>Access</strong><br />
3
Database<br />
– è un contenitore di tabelle, maschere, query, report, moduli,<br />
macro<br />
– le tabelle contengono i dati, gli altri tipi di documenti<br />
forniscono strumenti di accesso personalizzati<br />
– ogni strumento di accesso può essere generato<br />
automaticamente in forma standard, poi modificato<br />
secondo le esigenze<br />
– ogni strumento può essere usato o modificato<br />
– è possibile importare/esportare DB da/verso i dbms più<br />
diffusi<br />
– i dati possono essere facilmente collegati ad altri strumenti<br />
di ambiente windows (es: excel, word, ...)<br />
– dal punto di vista DOS è un unico file con estensione .MDB<br />
Basi di Dati - <strong>Access</strong><br />
4
Finestra principale database<br />
Basi di Dati - <strong>Access</strong><br />
5
Oggetti di un DB<br />
● tipi di oggetti:<br />
– tabelle: contenitori di dati (relazionali)<br />
– query: operazioni sui dati (di consultazione o modifica)<br />
– maschere: interfacce visuali per l’accesso ai dati<br />
– report: produzione di stampe<br />
– macro: sequenze di operazioni pre-registrate e rieseguibili<br />
a comando<br />
– moduli: applicazioni programmate<br />
● ogni oggetto può essere creato, memorizzato,<br />
utilizzato, modificato<br />
● tramite tabelle, maschere e query si possono<br />
anche modificare i dati<br />
Basi di Dati - <strong>Access</strong><br />
6
Struttura di tabella<br />
● nomi, tipi e dimensioni<br />
dei campi<br />
● chiave primaria<br />
● indici<br />
● possibilità di duplicati<br />
o di nulli<br />
● valori di default<br />
● regole di convalida<br />
● messaggi di errore<br />
Basi di Dati - <strong>Access</strong><br />
7
Relazioni<br />
● stabiliscono i vincoli di integrità referenziale<br />
● uno a uno e molti a molti<br />
● in caso di aggiornamento e cancellazione di un record<br />
padre che ha figli si può:<br />
– richiedere l’aggiornamento<br />
– impedire l’operazione<br />
Basi di Dati - <strong>Access</strong><br />
8
Consultazione di tabella<br />
● operazione di browse su tutta la tabella<br />
● possibilità di filtrare i dati con una regola di restrizione<br />
● possibilità di ordinamento<br />
● possibilità di aggiornare direttamente i dati<br />
Basi di Dati - <strong>Access</strong><br />
9
Query<br />
● maschera di ausilio alla<br />
formulazione di query<br />
● una query su più tabelle ha,<br />
come predicati di join<br />
automatici, le relazioni<br />
definite sul DB<br />
● in assenza di relazioni<br />
predefinite i predicati di<br />
join si stabiliscono<br />
graficamente come le<br />
relazioni<br />
● è possibile definire ulteriori<br />
predicati (criteri),<br />
raggruppamenti o<br />
ordinamenti<br />
Basi di Dati - <strong>Access</strong><br />
10
Query - SQL<br />
● si può passare indifferentemente dalla formulazione<br />
assistita alla formulazione SQL<br />
● la formulazione SQL ha maggiore potere espressivo, ma<br />
è più complessa<br />
● il linguaggio SQL contiene numerose variazioni rispetto<br />
allo standard (estensioni, modifiche e limitazioni)<br />
Basi di Dati - <strong>Access</strong><br />
11
Query - risultato<br />
● una query produce una vista sui dati e può essere<br />
manipolata come una tabella<br />
● le viste ottenute da query con raggruppamenti non sono<br />
modificabili<br />
● le viste da query con join sono direttamente modificabili<br />
● i dati sono modificati sulle tabelle base<br />
Basi di Dati - <strong>Access</strong><br />
12
Maschere<br />
● maschera di visualizzazione, aggiornamento e<br />
inserimento<br />
● può essere generata automaticamente a partire dalla<br />
struttura di una tabella o di una query<br />
● può essere personalizzata dal punto di vista sia grafico<br />
che funzionale<br />
● menu a tendina, pulsanti di<br />
opzione, procedure da associare ai<br />
vari eventi (pressione del mouse<br />
in un punto determinato, rilascio<br />
del mouse, ...)<br />
● procedure di controllo per vincoli<br />
di integrità<br />
Basi di Dati - <strong>Access</strong><br />
13
Report<br />
● per la produzione di stampe<br />
● personalizzare le intestazioni<br />
● definire gruppi e sottogruppi<br />
● calcolare totali parziali sui gruppi<br />
Basi di Dati - <strong>Access</strong><br />
14
Import / Export<br />
● è possibile importare o esportare dati con:<br />
– dBase<br />
– Excel<br />
– Lotus<br />
– Database SQL<br />
● è possibile esportare<br />
– intere tabelle<br />
– risultato di query<br />
Basi di Dati - <strong>Access</strong><br />
15
Programmazione di applicazioni<br />
● visione a oggetti: ad ogni oggetto possono<br />
essere collegate diverse funzioni da attivare al<br />
verificarsi di eventi<br />
● interfaccia principale fornita dalle maschere<br />
● gli eventi sono forniti dalle interazioni<br />
dell’utente con mouse e tastiera<br />
● le funzioni sono scritte in Visual Basic<br />
● Visual Basic è un linguaggio di<br />
programmazione strutturata che interagisce<br />
con gli oggetti del db<br />
● con la programmazione si può ulteriormente<br />
semplificare l’esecuzione dei vari compiti<br />
Basi di Dati - <strong>Access</strong><br />
16
Creazione Database<br />
● Selezionare Nuovo database dal<br />
menu File<br />
● Nella finestra Nuovo selezionare<br />
l’icona Database vuoto nella<br />
scheda Generale e confermare<br />
con OK<br />
● Dalla finestra Salva nuovo<br />
database assegnare un nome al<br />
database da creare, scegliere la<br />
cartella in cui di desidera salvare<br />
il database e fare clic sul pulsante<br />
Crea.<br />
● Esempio: studente.mdb<br />
Basi di Dati - <strong>Access</strong><br />
17
Creazione Tabella 1<br />
● Dalla finestra Tabelle fare clic sul pulsante Nuovo per<br />
visualizzare la finestra Nuova Tabella<br />
● Selezionare Visualizzazione struttura<br />
Basi di Dati - <strong>Access</strong><br />
18
Creazione Tabella 2<br />
● Nella prima colonna digitare i nomi dei campi:<br />
– la lunghezza massima di un campo nome è di 64 caratteri<br />
– una tabella non può contenere due campi con lo stesso<br />
nome<br />
● Nella colonna Tipo dati fare clic sul pulsante a freccia e<br />
selezionare il tipo di dato corrispondente al campo creato:<br />
– Testo, da 1 a 255 caratteri<br />
– Memo, fino a 64.000 caratteri<br />
– Numerico<br />
– Data/Ora<br />
– Valuta<br />
– Contatore<br />
– Si/No<br />
Basi di Dati - <strong>Access</strong><br />
19
Creazione Tabella 3<br />
● Definizione campo chiave primaria:<br />
– selezionare il campo (o i campi) che si desidera definire<br />
come chiave primaria<br />
– fare clic sullo strumento Chiave primaria<br />
● Salvare la tabella definita:<br />
– Chiudere la tabella (selezionare Chiudi dal menu File)<br />
– Nella finestra di dialogo Salva con nome, digitare il nome<br />
della tabella e premere Invio.<br />
Basi di Dati - <strong>Access</strong><br />
20
Immissione dei dati<br />
● Aprire la tabella in modalità Foglio Dati facendo doppio clic<br />
sul suo nome oppure tramite il pulsante Apri.<br />
● Posizionarsi sull’ultimo record vuoto.<br />
● Digitare il contenuto del record.<br />
Successivamente è possibile:<br />
– Spostarsi all’interno della tabella tramite i tasti della<br />
tastiera tramite mouse<br />
– Selezionare e modificare il contenuto<br />
– Eliminare un record<br />
– Annullare le modifiche apportate<br />
– Correggere gli errori di immissione<br />
Basi di Dati - <strong>Access</strong><br />
21
Ordinamento<br />
● Ordinamento crescente o decrescente<br />
– selezionare il campo su cui effettuare l’ordinamento<br />
– selezionare Ordinamento crescente oppure decrescente<br />
● Ordinamento su più campi<br />
– selezionare il comando Ordinamento/filtro avanzato dal<br />
sottomenu Filtro del menu Record<br />
– selezionare i campi sul quale effettuare l’ordinamento,<br />
specificare il tipo di ordinamento per ciascun campo<br />
– fare clic sullo strumento Applica filtro<br />
Basi di Dati - <strong>Access</strong><br />
22
Personalizzazione della visualizzazione<br />
Foglio dati<br />
E’possibile:<br />
● modificare l’ampiezza della colonna<br />
● bloccare le colonne in modo che restino sempre visualizzate<br />
● modificare l’altezza di una riga<br />
● visualizzare o nascondere le linee della griglia<br />
● modificare il tipo di carattere<br />
● salvare le modifiche di visualizzazione (Salva layout)<br />
Basi di Dati - <strong>Access</strong><br />
23
Le Maschere<br />
● consentono di visualizzare e gestire in modo<br />
diverso i dati contenuti nelle tabelle<br />
Creazione di una maschera<br />
● Visualizzare la scheda Maschere e selezionare<br />
Nuovo.<br />
● Si può utilizzare:<br />
– funzione di autocomposizione<br />
– modalità Visualizzazione Struttura<br />
Basi di Dati - <strong>Access</strong><br />
24
Autocomposizione Maschera<br />
● Si seleziona il nome della tabella<br />
● Si seleziona i campi della tabella<br />
● Selezionare il formato di visualizzazione:<br />
–a colonne<br />
–tabulare<br />
–foglio dati<br />
● Specificare lo stile di visualizzazione<br />
● Specificare il titolo<br />
Basi di Dati - <strong>Access</strong><br />
25
Creazione maschera vuota<br />
● scegliere modalità visualizzazione struttura<br />
● è possibile aggiungere:<br />
– caselle di testo<br />
– etichette<br />
– altri controlli (pulsanti, casella di controllo, casella<br />
combinata etc...)<br />
la finestra di lavoro è costituita:<br />
● area di lavoro<br />
● strumenti<br />
– barra degli strumenti<br />
– righelli<br />
– casella degli strumenti<br />
Basi di Dati - <strong>Access</strong><br />
26
Sezioni di una maschera<br />
● Una maschera può essere suddivisa in cinque<br />
sezioni:<br />
–Intestazione maschera<br />
–Intestazione pagina<br />
–Corpo<br />
–Piè di pagina pagina<br />
–Piè di pagina maschera<br />
● di default viene visualizzato solo il corpo<br />
● è possibile modificare le dimensioni di<br />
ciascuna sezione e specificare le proprietà<br />
Basi di Dati - <strong>Access</strong><br />
27
Modifica proprietà di una<br />
maschera<br />
● Seleziona la<br />
maschera tramite il<br />
comando Seleziona<br />
del menu Modifica,<br />
utilizzare lo<br />
strumento<br />
Proprietà per<br />
visualizzare le<br />
proprietà della<br />
maschera.<br />
Basi di Dati - <strong>Access</strong><br />
28
Controlli<br />
● Si suddividono i tre categorie<br />
– Controllo associato: consente la visualizzazione,<br />
l’aggiornamento e la modifica dei dati contenuti nel campo<br />
– Controllo non associato: consente la visualizzazione di un<br />
testo informativo o di altri elementi grafici come linee,<br />
contorni e altre figure<br />
– Controllo calcolato: consente di effettuare calcoli sulla base<br />
di dati contenuti nella tabella.<br />
Basi di Dati - <strong>Access</strong><br />
29
Casella degli strumenti 1<br />
● Seleziona oggetti<br />
● Autocomposizione controllo<br />
● Etichetta<br />
● Casella di testo<br />
● Gruppo di opzioni<br />
● Interruttore<br />
● Pulsante di opzione<br />
● Casella di controllo<br />
● Casella combinata<br />
● Casella di riepilogo<br />
Basi di Dati - <strong>Access</strong><br />
30
Casella degli strumenti 2<br />
● Pulsante di comando<br />
● Immagine<br />
● Cornice oggetto non associato<br />
● Cornice oggetto associato<br />
● Interruzione di pagina<br />
● Sottomaschera/sottoreport<br />
● Linea<br />
● Rettangolo<br />
Basi di Dati - <strong>Access</strong><br />
31
Creazione casella di testo<br />
● per creare una casella che visualizza il<br />
contenuto di un campo:<br />
– visualizzare l’elenco dei campi facendo clic sullo strumento<br />
Elenco campi e poi trascinare il campo nella posizione<br />
desiderata<br />
● per creare una casella di testo da utilizzare<br />
come campo calcolato o come controllo<br />
associato:<br />
– fare clic sullo strumento Casella di testo e fare clic sul<br />
punto in cui si vuole venga visualizzata l’angolo superiore<br />
sinistro della casella.<br />
Basi di Dati - <strong>Access</strong><br />
32
Relazioni tra tabelle<br />
● stabiliscono i vincoli di integrità referenziale<br />
● tabella primaria -> chiave primaria (primary key)<br />
● tabella correlata -> chiave esterna (foreign key)<br />
chiave primaria<br />
chiave esterna<br />
Basi di Dati - <strong>Access</strong><br />
33
Tipi di Relazioni<br />
● Relazione uno-a-molti<br />
– In una relazione uno-a-molti un record della tabella A può<br />
avere molti record corrispondenti nella tabella B, ma un<br />
record della tabella B non ha più di un record<br />
corrispondente nella tabella A.<br />
● Relazione molti-a-molti<br />
– In una relazione molti-a-molti un record della tabella A può<br />
avere molti record corrispondenti nella tabella B e<br />
viceversa. Ciò è possibile solo definendo una terza tabella,<br />
chiamata tabella di congiunzione, la cui chiave primaria<br />
consiste almeno di due campi, vale a dire le chiavi esterne<br />
da entrambe le tabelle A e B.<br />
● Relazioni uno-a-uno<br />
Basi di Dati - <strong>Access</strong><br />
34
Integrità referenziale<br />
● È possibile impostare l'integrità referenziale quando<br />
vengono soddisfatte tutte le seguenti condizioni:<br />
– Il campo corrispondente della tabella primaria è una chiave<br />
primaria o dispone di un indice univoco.<br />
– I campi correlati contengono lo stesso tipo di dati.<br />
– Entrambe le tabelle appartengono allo stesso database di Microsoft<br />
<strong>Access</strong>.<br />
● Quando viene applicata l'integrità referenziale, è<br />
necessario osservare le seguenti regole:<br />
– Non è possibile immettere un valore nel campo chiave esterna<br />
della tabella correlata che non esiste nella chiave primaria della<br />
tabella primaria.<br />
– Non è possibile eliminare un record da una tabella primaria, se<br />
esistono i record corrispondenti in una tabella correlata.<br />
– Non è possibile modificare un valore chiave primaria nella tabella<br />
primaria, se quel record dispone di record correlati.<br />
Basi di Dati - <strong>Access</strong><br />
35
Definizione delle relazioni 1<br />
● Selezionare Relazioni dal menu Strumenti<br />
● Selezionare le tabelle desiderate e fare clic sul pulsante<br />
Aggiungi.<br />
● Fare clic sul pulsante Chiudi.<br />
● Per definire una relazione fare clic sul campo comune<br />
dalla parte a uno e trascinarlo sul campo corrispondente<br />
dell’altra tabella (foreign key).<br />
Basi di Dati - <strong>Access</strong><br />
36
Definizioni delle relazioni 2<br />
E’ possibile specificare se<br />
si desidera che vengano<br />
automaticamente eseguite<br />
in successione le<br />
operazioni di eliminazione<br />
ed aggiornamento per i<br />
record correlati.<br />
Se si impostano queste<br />
opzioni, le operazioni di<br />
eliminazione e di<br />
aggiornamento, che di<br />
solito sarebbero impedite<br />
dalle regole sull'integrità<br />
referenziale, vengono<br />
consentite.<br />
Basi di Dati - <strong>Access</strong><br />
37
Proprietà campi<br />
E` possibile modificare le proprietà di ciascun campo<br />
Basi di Dati - <strong>Access</strong><br />
38
Dimensione campo<br />
● campi testo: valore compreso tra 1 e 255<br />
● campi numerici<br />
tipo dato valori memoria (bytes)<br />
---------------------------------------------------------------------------<br />
byte 0 255 1<br />
intero -32768 - 32765 2<br />
intero lungo -2147483648 2147483647 4<br />
precisione singola -3,402823E38 3,402823E38 4<br />
7 cifre decimali<br />
precisione doppia 1,79769313486232E308 8<br />
1,79769313486232E308<br />
15 cifre decimali<br />
Basi di Dati - <strong>Access</strong><br />
39
Formato campi numerici<br />
● determina l’aspetto di visualizzazione di un<br />
numero:<br />
– numero generico<br />
– valuta<br />
– fisso<br />
– standard<br />
– percentuale<br />
– scientifica<br />
● è possibile specificare un formato<br />
personalizzato<br />
Es. #.###,0; -#.###,0;0,0;”Nullo”<br />
72354,657 72.354,9<br />
-72354,857 -72.354,9<br />
0 0,0<br />
Nullo<br />
Basi di Dati - <strong>Access</strong><br />
40
Formato Tipo Data/Ora<br />
● Esistono diversi formati<br />
– Data generale 04/03/93 17.34.00<br />
– Data estesa sabato 3 aprile 1993<br />
– Data breve 03/apr/93<br />
– Data in cifre 04/03/93<br />
– Ora estesa 17.34.23<br />
– Ora breve 12h 5.34 PM<br />
– Ora breve 24h 17.34<br />
● Formati personalizzati<br />
– È possibile creare formati di data e ora personalizzati<br />
utilizzando dei codici di definizione<br />
Basi di Dati - <strong>Access</strong><br />
41
Formato campi di tipo si/no e<br />
campi testi<br />
● sono disponibili i seguenti formati<br />
– vero/falso<br />
– si/no<br />
– on/off<br />
● formato personalizzato per campi testo diviso<br />
in due parti<br />
– la prima specifica la visualizzazione del testo<br />
– la seconda specifica il formato quando il campo è vuoto<br />
@ è necessario un carattere di testo<br />
& non è necessario un carattere di testo<br />
< rende il testo minuscolo<br />
> rende il testo maiuscolo<br />
Basi di Dati - <strong>Access</strong><br />
42
Maschera di input e Etichetta<br />
● maschera di input<br />
– consente di impostare un formato predefinito<br />
– per creare una maschera di input tramite<br />
autocomposizione selezionare la casella e fare clic sul<br />
pulsante Genera<br />
● etichetta<br />
–consente la definizione di un nome<br />
alternativo come intestazione di colonna<br />
nella visualizzazione Foglio dati.<br />
Basi di Dati - <strong>Access</strong><br />
43
Valore predefinito<br />
● valore visualizzato automaticamente durante<br />
l’immissione dei dati in un nuovo record<br />
● come valore predefinito è possibile usare<br />
un`espressione del tipo:<br />
=1 1<br />
=“MI”<br />
MI<br />
=Null<br />
valore nullo<br />
=Date()<br />
data corrente<br />
=DatePart(“m”, Date()) mese della data corrente<br />
=Format(Date()<br />
data nel formato specificato<br />
“gg-mm-aaaa”)<br />
= Now() data e ora corrente<br />
= Time ora corrente<br />
Basi di Dati - <strong>Access</strong><br />
44
Generatore di espressioni<br />
● consente di comporre un espressione come<br />
valore predefinito<br />
● selezionare la casella valore predefinito<br />
● fare clic sul pulsante Genera<br />
● è possibile selezionare<br />
– funzioni<br />
– costanti<br />
– operatori<br />
Basi di Dati - <strong>Access</strong><br />
45
Valido se<br />
● consente di definire un intervallo di valori<br />
accettabili per un campo<br />
● è possibile utilizzare delle espressioni come<br />
combinazione di:<br />
– operatori<br />
– costanti<br />
– funzioni<br />
– campi<br />
– proprietà<br />
● E’possibile utilizzare il generatore di<br />
espressioni<br />
Basi di Dati - <strong>Access</strong><br />
46
Messaggio errore - Richiesto<br />
● Messaggio errore: è possibile definire un<br />
messaggio personalizzato quando un dato<br />
immesso in un campo non soddisfa la regola di<br />
convalida<br />
● Richiesto: consente di impedire la<br />
memorizzazione in un campo di un valore<br />
nullo<br />
● Consenti lunghezza zero: per distinguire tra i<br />
valori nulli e stringhe a lunghezza zero<br />
Basi di Dati - <strong>Access</strong><br />
47
Indicizzato<br />
● consente di definire un indice per rendere più<br />
rapide le operazioni di ordinamento e ricerca<br />
● l’indice può essere costituito da uno o più<br />
campi<br />
● Nel primo caso (un campo solo) selezionare la<br />
proprietà Indicizzato, esistono tre opzioni:<br />
– No<br />
– Si (duplicati possibili)<br />
– Si (duplicati impossibili<br />
● Nel secondo caso occorre usare lo strumento<br />
Indici<br />
Basi di Dati - <strong>Access</strong><br />
48
Valori Null<br />
● Campo che non contiene caratteri o valori. Un<br />
campo Null è diverso da una stringa di<br />
lunghezza zero ("") o da un campo contenente<br />
un valore zero.<br />
● Non è possibile immettere un valore Null per<br />
una chiave primaria.<br />
● Integrità referenziale: è possibile immettere un<br />
valore Null nella chiave esterna, specificando<br />
che i record non sono correlati.<br />
Basi di Dati - <strong>Access</strong><br />
49
Espressioni<br />
● Un'espressione è un insieme di simboli che<br />
producono un risultato.<br />
● Un’espressione è costituita da una<br />
combinazione di:<br />
– operatori<br />
– nomi di campi o di controlli (identificatori)<br />
– valori alfanumerici<br />
– costanti<br />
– funzioni<br />
Somma([Prezzo unitario] * [Quantità])*0,9<br />
Basi di Dati - <strong>Access</strong><br />
50
Uso delle espressioni<br />
● Impostazione di una proprietà che definisce un<br />
controllo calcolato, stabilisce una regola di<br />
convalida imposta un valore di campo<br />
predefinito.<br />
● Immissione di un'espressione criterio,<br />
creazione di un campo calcolato o<br />
aggiornamento di record in una query o in un<br />
filtro.<br />
● Impostazione di una condizione per<br />
l'esecuzione di un'azione o di una serie di<br />
azioni in una macro o specifica di argomenti<br />
per più azioni.<br />
Basi di Dati - <strong>Access</strong><br />
51
Regole di immissione 1<br />
● Le espressioni prevedono i seguenti caratteri<br />
di controllo:<br />
[] prima e dopo nomi di maschere, report,<br />
campi e controlli.<br />
# Prima e dopo le date.<br />
“ Prima e dopo un testo.<br />
● <strong>Access</strong> inserisce automaticamente i caratteri<br />
di controllo in alcuni casi (inserimento in una<br />
tavola delle proprietà, in una cella di una<br />
griglia QBE)<br />
Basi di Dati - <strong>Access</strong><br />
52
Regole di immissione 2<br />
● nomi di campi o di controllo<br />
[Prezzo unitario]<br />
la parentesi è obbligatoria se il nome contiene spazi<br />
bianchi ma è sempre consigliabile<br />
● Un numero può essere immesso direttamente<br />
[Quantità] < 25<br />
● Un testo deve essere tra virgolette<br />
[settore] “Narrativa”<br />
● Date e ore devono essere tra #<br />
[Data] >#1/2/96#<br />
● Costanti (Null, si, Vero, etc)<br />
Basi di Dati - <strong>Access</strong><br />
53
Operatori<br />
● indicano il tipo di azione che deve essere<br />
eseguita o il modo in cui devono essere<br />
confrontati due valori<br />
● operatori aritmetici (*, /, \, +, - , ^, MOD)<br />
● operatori di concatenazione (&)<br />
● operatori di confronto (>, >=,
Operatori di identificazione<br />
● indicano la relazione esistente tra gli elementi<br />
di un identificatore<br />
! seguito dal nome di un elemento definito<br />
dall’utente<br />
. è utilizzato per riferirsi a un nome di una<br />
proprietà<br />
● per specificare che un controllo o una<br />
proprietà appartengono ad un oggetto è<br />
possibile includere il nome di un oggetto<br />
(Maschere, Report, Schermo)<br />
Maschere![clienti]![codice cliente]<br />
Basi di Dati - <strong>Access</strong><br />
55
Query<br />
● Esistono due tipi principali di query:<br />
– query di selezione: consentono di ricercare, estrarre<br />
dati contenuti in una o più tabelle;<br />
– query di comando: consentono di modificare,<br />
aggiornare, eliminare o aggiungere dati a una o più<br />
tabelle<br />
● Esistono due modalità:<br />
– QBE (Query By Example) : query tramite esempio<br />
– SQL<br />
● si può passare indifferentemente dalla formulazione<br />
assistita alla formulazione SQL<br />
● la formulazione SQL ha maggiore potere espressivo, ma<br />
è più complessa<br />
Basi di Dati - <strong>Access</strong><br />
56
QBE Query di selezione<br />
● Dalla finestra Query fare clic sul pulsante<br />
nuovo e scegliere modalità visualizzazione<br />
struttura<br />
● Dalla finestra Mostra tabella scegliere le<br />
tabelle desiderate<br />
Basi di Dati - <strong>Access</strong><br />
57
Selezione dei campi<br />
● è possibile selezionare i campi in diverse<br />
modalità:<br />
– selezionare i campi dalla tabella e trascinarli su una<br />
colonna della griglia<br />
– selezionare il campo nella casella Campo della griglia QBE<br />
– digitare il nome del campo nella casella Campo<br />
● per visualizzare tutti i campi è possibile<br />
utilizzare l’asterisco<br />
Basi di Dati - <strong>Access</strong><br />
58
Esecuzione di una query<br />
● Quando si salva una query viene salvata la<br />
struttura della query<br />
● E’possibile eseguire una query:<br />
– dalla modalità visualizzazione struttura utilizzando lo<br />
strumento Esegui o Visualizzazione Foglio Dati<br />
– dalla scheda Query tramite il pulsante Apri oppure tramite<br />
doppio clic sul nome della query<br />
Basi di Dati - <strong>Access</strong><br />
59
Ordinamento di record<br />
● l’ordinamento può essere per diversi tipi:<br />
– alfabetico per nome<br />
– cronologico per data<br />
– numerico per valore<br />
● per specificare l’ordinamento selezionare nella<br />
casella Ordinamento sotto il nome del campo<br />
selezionare il tipo:<br />
– Crescente<br />
– Decrescente<br />
– Non ordinato<br />
● è possibile eseguire un ordinamento su più<br />
campi specificando il tipo di ordinamento per<br />
ciascun campo<br />
Basi di Dati - <strong>Access</strong><br />
60
Criterio di ricerca<br />
● Specifica il criterio di selezione per ciascun<br />
campo<br />
● E’possibile usare il Generatore di espressioni<br />
● Esistono diversi criteri<br />
– ricerca di un valore specifico (Es. =“Milano”)<br />
– ricerca di una parte di testo (Es. Like “A*”)<br />
– ricerca di un testi all’interno di altri<br />
(“*dei Cipressi*”)<br />
– ricerca tramite Is Null/ Is Not Null<br />
– ricerca di intervalli di date<br />
(Between 1/1/98 And 31/3/98)<br />
Basi di Dati - <strong>Access</strong><br />
61
Criteri di ricerca<br />
● E’possibile specificare diversi criteri con le<br />
seguenti tecniche:<br />
– per relazioni di tipo And tra diversi campi,<br />
posizionare i criteri di ricerca sulla stessa riga della<br />
griglia QBE<br />
– per relaziondi di tipo Or tra diversi campi,<br />
posizionare i criteri di ricerca su righe separate della<br />
griglia QBE<br />
– per specificare una relazione di tipo And in un<br />
singolo campo utilizzare l’operatore And<br />
– per specificare una relazione di tipo Or in un singolo<br />
campo utilizzare l’operatore Or o In<br />
Basi di Dati - <strong>Access</strong><br />
62
Calcoli<br />
● E’possibile inserire un campo calcolato nella<br />
griglia QBE.<br />
● Posizionarsi su un campo vuoto e digitarvi<br />
un’espressione [Quantità] * [Prezzo unitario]<br />
● Si puo’assegnare alla colonna un’intestazione<br />
e poi utilizzare tale nome per effettuare altri<br />
calcoli<br />
Prezzo complessivo: [Quantità] * [Prezzo<br />
unitario]<br />
Prezzo con IVA: [Prezzo complessivo] * 1,04<br />
Basi di Dati - <strong>Access</strong><br />
63
Utilizzare il linguaggio SQL<br />
● E’possibile utilizzare direttamente l'istruzione SQL<br />
sottostante una query dopo aver creato una query in<br />
visualizzazione Struttura.<br />
● Fare clic sulla freccia accanto al pulsante delle<br />
visualizzazioni sulla barra degli strumenti, quindi<br />
scegliere Visualizzazione SQL.<br />
● Viene visualizzata l'istruzione SQL equivalente a quella<br />
creata in visualizzazione Struttura.<br />
– Se si desidera apportare delle modifiche, digitarle<br />
nell'istruzione SQL.<br />
– Per visualizzare le modifiche nella griglia di<br />
struttura, fare clic sulla freccia accanto al pulsante<br />
delle visualizzazioni sulla barra degli strumenti,<br />
quindi fare clic su Visualizzazione Struttura.<br />
Basi di Dati - <strong>Access</strong><br />
64
Utilizzo di SQL<br />
● E’necessario usare direttamente il linguaggio<br />
SQL per:<br />
– query di definizione dati: questo tipo di query crea o<br />
modifica gli oggetti di database.<br />
– query di unione: combina i campi o le colonne di una<br />
o più tabelle in un campo o una colonna nei risultati<br />
della query.<br />
– sottoquery: questo tipo di query è costituito da<br />
un'istruzione SQL SELECT all'interno di un'altra<br />
query di selezione o di comando.<br />
Basi di Dati - <strong>Access</strong><br />
65
Query di definizione Dati<br />
● Dopa aver creato una nuova query scegliere<br />
Specifica SQL dal menu Query, quindi<br />
scegliere Definizione dati.<br />
● Immettere l'istruzione SQL per la query di<br />
definizione dati.<br />
● <strong>Access</strong> supporta i seguenti tipi di query:<br />
– CREATE TABLE crea una tabella.<br />
– ALTER TABLE aggiunge un nuovo campo o vincolo ad una<br />
tabella esistente.<br />
– DROP elimina una tabella da un database o rimuove un<br />
indice da un campo o da un gruppo di campi.<br />
– CREATE INDEX crea un indice per un campo o per un<br />
gruppo di campi<br />
Basi di Dati - <strong>Access</strong><br />
66
Query basate su più tabelle<br />
● Tramite la griglia QBE è possibile definire<br />
query di Join<br />
● Per definire le relazioni esistenti tra tabelle:<br />
– se la relazione è già impostata, <strong>Access</strong> le unisce<br />
automaticamente visualizzando una linea di Join<br />
– se la relazione non è stata impostata, <strong>Access</strong> può creare<br />
automaticamente un join utilizzando i campi comuni delle<br />
tabelle<br />
– è possibile impostare un join facendo clic sul nome del<br />
campo che si desidera utilizzare in una tabella e trascinarlo<br />
sul nome corrispondente dell’altra tabella<br />
Basi di Dati - <strong>Access</strong><br />
67
Tipi di Join<br />
● per default access genera un equi-join<br />
● per creare un join esterno (outer join)<br />
– selezionare la linea di join da modificare e<br />
fare doppio clic<br />
– scegliere l’opzione desiderata:<br />
» 1 - includi solo le righe in cui i campi collegati da<br />
entrambe le tabelle sono uguali (INNER JOIN)<br />
» 2 - includi tutti i record di tabella1 e solo i record<br />
di tabella2 in cui i campi collegati sono uguali<br />
(LEFT JOIN)<br />
» 3 - includi tutti i record di tabella2 e solo i record<br />
di tabella1 in cui i campi collegati sono uguali<br />
(RIGHT JOIN)<br />
Basi di Dati - <strong>Access</strong><br />
68
QBE vs SQL<br />
● è possibile utilizzare la modalità di<br />
Autocomposizione ricerca dati non<br />
corrispodenti per visualizzare i record privi di<br />
corrispondenza<br />
● per creare un self join occorre inserire due<br />
copie della stessa tabella nella finestra di<br />
query<br />
● per altri tipi di query conviene usare<br />
direttamente il linguaggio SQL (condizioni di<br />
Join diverse da =, interrogazioni innestate,<br />
subquery, etc..)<br />
Basi di Dati - <strong>Access</strong><br />
69
Utilizzo di formule nelle query<br />
● Trascinare nella griglia QBE i campi sui quali<br />
si desidera effettuare dei calcoli<br />
● fare clic sullo strumento Formule: in tal modo<br />
viene visualizzata una nuova riga denominata<br />
Formula<br />
● fare clic sul pulsante a freccia della cella<br />
Formula e selezionare una delle opzioni:<br />
– somma<br />
– media<br />
– min<br />
– max<br />
– conteggio<br />
– etc.<br />
Basi di Dati - <strong>Access</strong><br />
70
Calcoli basati su gruppi di record<br />
● Trascinare nella griglia QBE il campo sul<br />
quale si desidera basare il raggruppamento<br />
● selezionare l’opzione Raggruppamento nella<br />
cella Formula<br />
● se si includono diversi campi con l’opzione<br />
raggruppamento, il gruppo è definito dalla loro<br />
combinazione<br />
Basi di Dati - <strong>Access</strong><br />
71
Criteri di ricerca per i campi impostati con<br />
un operatore matematico<br />
● E’possibile specificare se applicare il criterio<br />
prima o dopo che è stato effettuato il calcolo<br />
● per selezionare i record in base al risultato del<br />
calcolo e’sufficiente immettere il criterio di<br />
ricerca nella cella Criteri in corrispondenza<br />
del campo sul quale si effettua il calcolo<br />
● per selezionare i record sui quali eseguire i<br />
calcoli è necessario utilizzare l’opzione Dove<br />
che agisce come filtro<br />
Basi di Dati - <strong>Access</strong><br />
72
Visualizzazione de valori massimi<br />
e minimi<br />
● E’possibile visualizzare i primi e gli ultimi<br />
valori tra i record, secondo un intervallo<br />
definito.<br />
● Il campo contenente i valori da utilizzare per<br />
l’ordinamento deve essere collocato nella<br />
colonna piu’a sinistra della griglia<br />
● selezionare l’ordinamento Decrescente o<br />
Crescente<br />
● nella casella Primi valori della tavola delle<br />
proprietà della query immettere un valore<br />
assoluto (ad esempio 3 per visualizzare i primi<br />
3 valori) sia una percentuale (ad esempio 10%)<br />
Basi di Dati - <strong>Access</strong><br />
73
Query per parametri<br />
● Una query con parametri è una query per la<br />
quale durante l'esecuzione viene visualizzata<br />
una finestra di dialogo in cui viene richiesto di<br />
specificare il valore per i parametri (criteri).<br />
● Nella visualizzazione Struttura della query,<br />
trascinare i campi dall'elenco di campi alla<br />
griglia di struttura della query.<br />
● Nella cella Criteri, digitare una richiesta<br />
racchiusa tra parentesi quadre per ciascun<br />
campo che si desidera utilizzare come<br />
parametro (diversa dal nome del campo).<br />
Basi di Dati - <strong>Access</strong><br />
74
Query a campi incrociati<br />
● Una query a campi incrociati estrae valori di<br />
riepilogo, come somme, conteggi e medie, da<br />
un campo di una tabella e li raggruppa<br />
visualizzandoli in un set di dati elencati sul<br />
lato sinistro del foglio di dati e in un altro set<br />
di dati elencato nella parte superiore del foglio<br />
di dati.<br />
Basi di Dati - <strong>Access</strong><br />
75
Query a campi incrociati<br />
● Fare clic sul pulsante Tipo di query sulla barra degli<br />
strumenti, quindi scegliere Campi incrociati.<br />
● Fare clic sulla riga Campi incrociati, quindi su<br />
Intestazione di riga per il campo o i campi i cui valori si<br />
desidera vengano visualizzati come righe.<br />
● Fare clic sulla riga Campi incrociati, quindi su<br />
Intestazione di colonna per il campo i cui valori si<br />
desidera vengano visualizzati come intestazioni di<br />
colonna.<br />
● Fare clic sulla riga Campi incrociati, quindi su Valore<br />
per il campo di cui si desidera utilizzare i valori<br />
nell'incrocio dei campi.<br />
● Nella riga Formula di questo campo, scegliere il tipo di<br />
funzione di aggregazione desiderato per l'incrocio dei<br />
campi, ad esempio Somma, Media o Conteggio.<br />
Basi di Dati - <strong>Access</strong><br />
76
Query di comando<br />
● Consentono di modificare o eliminare i dati<br />
● esistono quattro diversi tipi:<br />
–query di creazione tabella<br />
–query di eliminazione<br />
–query di aggiornamento<br />
–query di accodamento<br />
Basi di Dati - <strong>Access</strong><br />
77
Query di creazione tabella<br />
● Scegliere tramite lo strumento Tipo di query la<br />
query di tipo Creazione tabella. Verrà<br />
visualizzata la finestra di dialogo Creazione<br />
tabella.<br />
● Nella casella Nome tabella, digitare il nome<br />
della tabella che si desidera creare o scegliere<br />
il nome della tabella che si desidera sostituire.<br />
● Scegliere Database corrente o Altro database<br />
● Trascinare i campi che si desidera inserire<br />
nella nuova tabella dall'elenco campi alla<br />
griglia di struttura della query.<br />
● Digitare i criteri nella cella Criteri dei campi<br />
che sono stati trascinati sulla griglia.<br />
Basi di Dati - <strong>Access</strong><br />
78
Query di eliminazione<br />
● Scegliere tramite lo strumento Tipo di query la query di<br />
tipo Query di eliminazione.<br />
● Dalle tabelle da cui si desidera eliminare dei record,<br />
trascinare l'asterisco (*) dall'elenco campi alla griglia di<br />
struttura della query.<br />
● Nella cella Elimina presente sotto questi campi viene<br />
visualizzato Da<br />
● Per specificare dei criteri per l'eliminazione dei record,<br />
trascinare sulla griglia di struttura i campi sui quali si<br />
desidera impostare dei criteri.<br />
● Nella cella Elimina presente sotto questi campi viene<br />
visualizzato Dove, come mostrato nell'illustrazione<br />
seguente.<br />
● Digitare i criteri nella cella Criteri dei campi che sono<br />
stati trascinati sulla griglia.<br />
Basi di Dati - <strong>Access</strong><br />
79
Query di aggiornamento<br />
● Scegliere tramite lo strumento Tipo di query la<br />
query di tipo Query di aggiornamento.<br />
● Trascinare dall'elenco campi sulla griglia di<br />
struttura della query i campi che si desidera<br />
aggiornare o per i quali si desidera specificare<br />
dei criteri.<br />
● Nella cella Criteri, specificare i criteri se<br />
necessario.<br />
● Nella cella Aggiorna a dei campi che si<br />
desidera aggiornare, digitare l'espressione o il<br />
valore che si desidera utilizzare per modificare<br />
i campi.<br />
Basi di Dati - <strong>Access</strong><br />
80
Basi di Dati - <strong>Access</strong><br />
Query di accodamento<br />
● Scegliere tramite lo strumento Tipo di query la query di<br />
tipo Query di accodamento.<br />
● Nella casella Nome tabella, digitare il nome della tabella<br />
alla quale si desidera accodare dei record.<br />
● Scegliere Database corrente o Altro database<br />
● Trascinare dall'elenco campi sulla griglia di struttura<br />
della query i campi che si desidera accodare ed i campi<br />
che si desidera utilizzare per l'impostazione dei criteri.<br />
● Se i campi selezionati hanno lo stesso nome in entrambe<br />
le tabelle, in Microsoft <strong>Access</strong> viene automaticamente<br />
inserito il nome corrispondente nella riga Accoda a. Se i<br />
campi contenuti nelle due tabelle non hanno lo stesso<br />
nome, nella riga Accoda a, immettere nella tabella i<br />
nomi dei campi.<br />
● Nella cella Criteri dei campi che sono stati trascinati<br />
sulla griglia, digitare i criteri in base ai quali verranno<br />
effettuate le aggiunte.<br />
81
Esempio<br />
Studente (matricola, nome, cognome,note)<br />
Professore(codiceProf, nome, cognome)<br />
Esame (codiceEsame,titolo,codiceProf)<br />
FOREIGN KEY (codiceProf) REFERENCES Professore(codiceProf)<br />
EsameSostenuto (matricola, codiceEsame,voto, data)<br />
FOREIGN KEY (matricola) REFERENCES Studente(matricola)<br />
FOREIGN KEY (codiceEsame) REFERENCES Esame(codiceEsame)<br />
Basi di Dati - <strong>Access</strong><br />
82
Esempio: creazione tabella 1<br />
CREATE TABLE STUDENTI<br />
(<br />
MATRICOLA INTEGER,<br />
NOME text(30) NOT NULL,<br />
COGNOME text(30) NOT NULL,<br />
NOTE_STUDENTE memo,<br />
CONSTRAINT pk_studenti PRIMARY KEY(MATRICOLA)<br />
);<br />
CREATE TABLE PROFESSORI<br />
(<br />
CODICEPROF INTEGER,<br />
NOME text(30) NOT NULL,<br />
COGNOME text(30) NOT NULL,<br />
CONSTRAINT pk_professori PRIMARY KEY(CODICEPROF)<br />
);<br />
Basi di Dati - <strong>Access</strong><br />
83
Esempio: creazione tabella 2<br />
CREATE TABLE ESAMI<br />
(<br />
CODICEESAME INTEGER,<br />
TITOLO text(30) NOT NULL,<br />
CODICEPROF INTEGER,<br />
CONSTRAINT pk_esame PRIMARY KEY(CODICEESAME),<br />
CONSTRAINT fk_esame FOREIGN KEY (CODICEPROF)<br />
REFERENCES<br />
PROFESSORI(CODICEPROF)<br />
);<br />
Basi di Dati - <strong>Access</strong><br />
84
Esempio: creazione tabella 3<br />
CREATE TABLE ESAMISOSTENUTI<br />
(<br />
MATRICOLA INTEGER,<br />
CODICEESAME INTEGER,<br />
VOTO SMALLINT,<br />
DATAESAME DATE NOT NULL,<br />
CONSTRAINT pk_esamisostenuti PRIMARY<br />
KEY(MATRICOLA,CODICEESAME),<br />
CONSTRAINT fk_esami1 FOREIGN KEY (MATRICOLA)<br />
REFERENCES STUDENTI(MATRICOLA),<br />
CONSTRAINT fk_esami2 FOREIGN KEY (CODICEESAME)<br />
REFERENCES ESAMI(CODICEESAME)<br />
);<br />
Basi di Dati - <strong>Access</strong><br />
85
Maschere basate su più tabelle<br />
Esistono tre modalità:<br />
• basare la maschere su una query<br />
• selezionare campi di diverse tabelle tramite la<br />
procedura di autocomposizione tabella<br />
• creare una sottomaschera che consente di<br />
visualizzare la relazione esistente tra i record di<br />
diverse tabelle<br />
Basi di Dati - <strong>Access</strong><br />
86
Sottomaschera<br />
• vengono usate soprattutto per visualizzare i record<br />
contenuti in tabelle collegate con relazioni del tipo<br />
uno a molti<br />
• è possibile crearle con la modalità di<br />
autocomposizione:<br />
– creare la maschera principale<br />
– utilizzare lo strumento Sottomaschera/Sottoreport per<br />
creare la sottomaschera sulla griglia della maschera<br />
principale<br />
Basi di Dati - <strong>Access</strong><br />
87
Creazione di una sottomaschera<br />
● Creare la maschera principale<br />
● creare la sottomaschera<br />
● riaprire la maschera principale in<br />
visualizzazione struttura<br />
● trascinare dalla finestra di database il nome<br />
della sottomaschera sulla griglia della<br />
maschera principale<br />
● verificare che nella tavola delle proprietà della<br />
sottomaschera le proprietà Collega campi<br />
secondari e Collega campi master contengano i<br />
campi che collegamo la maschera principale e<br />
la sottomaschera<br />
Basi di Dati - <strong>Access</strong><br />
88
Proprietà maschera<br />
E’possibile:<br />
● Assegnare un valore predefinito ad un<br />
controllo<br />
● Creare una regola di convalida per un<br />
controllo<br />
● Creare una maschera di input per un controllo<br />
● Disattivare un controllo in visualizzazione<br />
Maschera oppure rendere i dati di un controllo<br />
di sola lettura<br />
● Specificare se un utente può aggiungere,<br />
eliminare, modificare i record salvati con una<br />
maschera<br />
Basi di Dati - <strong>Access</strong><br />
89
Macro<br />
● Una macro è un’istruzione che consente di<br />
eseguire automaticamente una o piú<br />
operazioni (azioni)<br />
● Le macro possono essere usate:<br />
– ricerca dati<br />
– verifica dei dati immessi<br />
– impostare proprietá di oggetti<br />
– utilizzare piú maschere contemporaneamente<br />
– collegare maschere con report<br />
– trasferire dati<br />
– applicazioni personalizzate<br />
Basi di Dati - <strong>Access</strong><br />
90
Creazione di una macro<br />
● Dalla finestra macro selezionare il pulsante<br />
nuovo.<br />
La sezione<br />
Argomento azione<br />
consente di<br />
impostare gli<br />
argomenti delle<br />
azioni immesse nella<br />
colonna Azione<br />
Basi di Dati - <strong>Access</strong><br />
91
Le azioni<br />
● Le azioni sono istruzioni che indicano quali<br />
operazioni compiere<br />
● Possono essere aggiunte in due modi<br />
– trascinando il nome dell’oggetto dalla finestra di database<br />
in una cella della colonna Azione<br />
– fare clic su una cella della colonna Azione e selezionare<br />
un’azione dall’elenco visualizzato<br />
● Nel primo caso gli argomenti vengono<br />
impostati automaticamente, nel secondo caso è<br />
necessario impostare gli argomenti dell’azione<br />
Basi di Dati - <strong>Access</strong><br />
92
Esecuzione di una macro<br />
● E’possibile eseguire una macro:<br />
– dalla finestra macro tramite lo strumento Esegui<br />
– dalla finestra di database facendo doppio clic sul nome<br />
della macro o usando il bottone Esegui<br />
– da un’altra finestra selezionando Macro… dal menu<br />
Strumenti e specificando il nome della macro<br />
– all’interno di un’altra macro tramite l’azione EseguiMacro<br />
– in conseguenza di un evento che si verifica in una<br />
maschera o in un report<br />
Basi di Dati - <strong>Access</strong><br />
93
Macro condizionate<br />
● Consente di eseguire una macro solo se si<br />
verifica una determinata condizione<br />
● Per aggiungere una consizione ad una macro:<br />
– aprire la macro in modalitá struttura<br />
– visualizzare la colonna Condizione facendo clic sullo<br />
strumento corrispondente<br />
– digitare nella colonna Condizione in corrispondenza<br />
dell’azione che si desidera condizionare, l’espressione<br />
logica che determina la condizione<br />
– se si desidera porre un’unica condizione per diverse azioni,<br />
si immettano dei puntini di sospensione (… .) nella colonna<br />
Condizione accanto a ciascuna azione da eseguire nel caso<br />
la condizione risulti vera<br />
Basi di Dati - <strong>Access</strong><br />
94
Risposta ad eventi di una<br />
maschera<br />
● E’possibile creare uno o più macro, le quali<br />
rispondono a particolari eventi che si possono<br />
verificare durante l’utilizzo di una maschera<br />
● Aprire la maschera in visualizzazione<br />
struttura<br />
● Visualizzare le tavole delle proprietá<br />
● Fare clic sulla proprietá relativa all’evento al<br />
quale si desidera che la macro risponda e<br />
selezionare il nome della macro oppure<br />
generare una nuova macro tramite il pulsante<br />
Genera<br />
Basi di Dati - <strong>Access</strong><br />
95
Risposta agli eventi relativi ai<br />
singoli controlli<br />
● Una macro puó essere collegata ai singoli<br />
controlli di una maschera.<br />
● Aprire la maschera in visualizzazione<br />
struttura<br />
● Selezionare il controllo<br />
● Aprire la tavola delle proprietá<br />
● Fare clic sulla proprietá relativa all’evento e<br />
selezionare o generare la macro<br />
Basi di Dati - <strong>Access</strong><br />
96
Debug di un macro<br />
● E’possibile controllare ogni singola azione per<br />
verificare i risultati di ciascuna (modalitá passo a passo)<br />
● Aprire la finestra Macro corrispondente alla macro da<br />
controllare<br />
● Fare clic sullo strumento Passo a passo<br />
● Eseguire la macro utilizzando le normali procedure<br />
● In tal modo viene visualizzata la finestra di dialogo<br />
Macro passo a passo che contiene la descrizione<br />
dell’azione da eseguire e tre bottoni:<br />
● Passo: esegue l’azione, se l’azione non è corretta viene<br />
visualizzato un messaggio di avviso<br />
– Arresta: arresta l’esecuzione della macro<br />
– Continua: disattiva la modalitá Passo a Passo<br />
Basi di Dati - <strong>Access</strong><br />
97
Report<br />
● Un report è una presentazione di dati,<br />
provenienti da una o più tabelle, formattata e<br />
stampata.<br />
● Può essere basato su una tabella o su una<br />
query<br />
● può essere utilizzato per una stampa dei dati,<br />
ma non per la loro immissione o modifica<br />
Basi di Dati - <strong>Access</strong><br />
98
Creazione di un report<br />
Esistono tre modalità:<br />
● Creazione tramite la funzione Report Standard<br />
– formato a colonne<br />
– formato tabulare<br />
● Creazione tramite autocomposizione<br />
– selezione dei campi<br />
– livello di raggruppamento dati<br />
– tipo di ordinamento<br />
– layout e stile<br />
● Creazione report vuoto<br />
Basi di Dati - <strong>Access</strong><br />
99
Finestra di struttura di un report<br />
● È simile a quella di una maschera<br />
● È suddiviss in sezioni:<br />
– Intestazione report<br />
– Intestazione pagina<br />
– Intestazione nome_raggruppamento<br />
– Corpo<br />
– Piè di pagina nome_raggruppamento<br />
– Piè di pagina pagina<br />
– Piè di pagina report<br />
● il testo e i dati sono rappresentati da controlli<br />
che possono essere creati utilizzando gli<br />
strumenti corrispondenti della casella<br />
strumenti<br />
Basi di Dati - <strong>Access</strong><br />
100
Ordinamento e raggruppamento<br />
dei dati<br />
Si può impostare:<br />
● Tramite la procedura di autocomposizione<br />
selezionando il campo secondo il quale si<br />
desidera raggruppare i record<br />
● Direttamente nella struttura del report<br />
– fare clic sullo strumento Ordinamento e raggruppamento<br />
della barra degli strumenti<br />
– selezionare il campo su cui basare l’ordinamento o il<br />
raggruppamento<br />
– selezionare il criterio di ordinamento<br />
– se si vuole usare il campo per il raggruppamento e avere<br />
un’intestazione di gruppo modificare in Si la proprietà<br />
Intestazione (gruppo)<br />
– se si vuole usare il campo per il raggruppamento e si vuole<br />
avere un piè di pagina di gruppo, modificare in Si la<br />
proprietà Piè pagina (gruppo)<br />
Basi di Dati - <strong>Access</strong><br />
101
Calcoli in un report<br />
● Dalla finestra si struttura inserire una casella<br />
di testo standard non associata<br />
● Per immettere un’espressione:<br />
– digitare l’espressione nella casella iniziando con il segno<br />
uguale (=), oppure<br />
– aprire la tavola delle proprietà e digitare l’espressione<br />
nella propietà Origine controllo o utilizzare il generatore di<br />
espressioni<br />
● se si colloca il campo calcolato in una sezione<br />
relativa ad un gruppo il calcolo si riferisce al<br />
gruppo, se lo si colloca in una sezione relativa<br />
al report il calcolo si riferisce a tutti i record,<br />
se lo si colloca nella sezione Corpo, il calcolo si<br />
basa solo sul record<br />
Basi di Dati - <strong>Access</strong><br />
102
Aggiunta di numeri di pagina e<br />
date<br />
Si possono utilizzare:<br />
● le funzioni =Date() o =Now() =Pagina in un<br />
controllo calcolato;<br />
● utilizzare i comandi del menu Inserisci<br />
– Numeri di pagina…<br />
– Data e ora...<br />
Basi di Dati - <strong>Access</strong><br />
103