01.06.2014 Views

MS Access - Progettoatena.It

MS Access - Progettoatena.It

MS Access - Progettoatena.It

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!