18.01.2015 Views

Caratteristiche di MS Access Database Creazione ... - DBGroup

Caratteristiche di MS Access Database Creazione ... - DBGroup

Caratteristiche di MS Access Database Creazione ... - DBGroup

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Sistemi Informativi<br />

Corso <strong>di</strong> Laurea in:<br />

Ingegneria della Gestione Industriale<br />

Ingegneria dell’Integrazione d’Impresa<br />

Esercitazioni ACCESS<br />

Anno Accademico 2006-2007<br />

<strong>Caratteristiche</strong> <strong>di</strong> <strong>MS</strong> <strong>Access</strong><br />

• Interazione a finestre o me<strong>di</strong>ante SQL<br />

• Funzioni (vista utente):<br />

– creazione e consultazione <strong>di</strong> tabelle, interfaccia tabellare<br />

– interfaccia a schede personalizzabili (un record per volta)<br />

– interfaccia SQL<br />

– salvataggio e mo<strong>di</strong>fica <strong>di</strong> interrogazioni<br />

– generazione <strong>di</strong> report<br />

– multiutenza<br />

• Funzioni (vista sistema)<br />

– chiavi primarie e in<strong>di</strong>ci<br />

– valori nulli, regole <strong>di</strong> vali<strong>di</strong>tà e domini <strong>di</strong> valori<br />

– gestione vincoli <strong>di</strong> integrità referenziale<br />

– programmazione<br />

"<br />

!<br />

<strong>Database</strong><br />

• è un contenitore <strong>di</strong> tabelle, maschere, query, report, moduli,<br />

macro, pagine<br />

• le tabelle contengono i dati, gli altri tipi <strong>di</strong> documenti<br />

forniscono strumenti <strong>di</strong> accesso personalizzati<br />

• ogni strumento <strong>di</strong> accesso può essere generato<br />

automaticamente in forma standard, poi mo<strong>di</strong>ficato secondo<br />

le esigenze<br />

• ogni strumento può essere usato o mo<strong>di</strong>ficato<br />

• è possibile importare/esportare DB da/verso i dbms più<br />

<strong>di</strong>ffusi<br />

• i dati possono essere facilmente collegati ad altri strumenti<br />

<strong>di</strong> ambiente windows (es: excel, word, ...)<br />

• dal punto <strong>di</strong> vista DOS è un unico file con estensione .MDB<br />

• All’apertura <strong>di</strong> <strong>Access</strong> selezionare<br />

<strong>Database</strong> <strong>di</strong> <strong>Access</strong> vuoto oppure<br />

selezionare Nuovo database dal menu<br />

File<br />

• Nella finestra Nuovo selezionare<br />

l’icona <strong>Database</strong> vuoto nella scheda<br />

Generale e confermare con OK<br />

• Dalla finestra Salva nuovo database<br />

assegnare un nome al database da<br />

creare, scegliere la cartella in cui <strong>di</strong><br />

desidera salvare il database e fare clic<br />

sul pulsante Crea.<br />

• Esempio: studente.mdb<br />

<strong>Creazione</strong> <strong>Database</strong><br />

#<br />

$


Finestra <strong>di</strong> database principale<br />

)<br />

• tipi <strong>di</strong> oggetti:<br />

Oggetti <strong>di</strong> un <strong>Database</strong><br />

– tabelle: contenitori <strong>di</strong> dati (relazionali)<br />

– query: operazioni su dati (<strong>di</strong> consultazione o mo<strong>di</strong>fica) e<br />

schema<br />

– maschere: interfacce visuali per l’accesso ai dati<br />

– report: produzione <strong>di</strong> stampe<br />

– macro: sequenze <strong>di</strong> operazioni pre-registrate e<br />

rieseguibili a comando<br />

– moduli: applicazioni programmate<br />

– Pagine: produzione <strong>di</strong> pagine Web per l’accesso ai dati<br />

• ogni oggetto può essere creato, memorizzato,<br />

utilizzato, mo<strong>di</strong>ficato<br />

• tramite tabelle, maschere, query e pagine si possono<br />

anche mo<strong>di</strong>ficare i dati<br />

%<br />

DDL<br />

• CREATE TABLE e ALTER TABLE:<br />

– Proposizione CONSTRAINT<br />

• CREATE INDEX<br />

• CREATE PROCEDURE<br />

• CREATE VIEW<br />

• DROP TABLE, INDEX, PROCEDURE,<br />

VIEW<br />

&<br />

CREATE TABLE<br />

((((CREATE [TEMPORARY] TABLE tabella<br />

(campo1 tipo [(<strong>di</strong>mensioni)] [NOT NULL]<br />

[WITH COMPRESSION | WITH COMP]<br />

[in<strong>di</strong>ce1]<br />

[, campo2 tipo [(<strong>di</strong>mensioni)] [NOT<br />

NULL] [in<strong>di</strong>ce2] [, ...]]<br />

[, CONSTRAINT in<strong>di</strong>cemulticampo [,<br />

...]])<br />

• tabella: nome della tabella da creare.<br />

• campo1, campo2 : nome del campo o dei campi da<br />

creare nella nuova tabella. È necessario creare<br />

almeno un campo.<br />

'


CREATE TABLE (2)<br />

• tipo: tipo <strong>di</strong> dati del campo nella nuova tabella.<br />

• <strong>di</strong>mensioni: <strong>di</strong>mensioni del campo in caratteri,<br />

solo per campi con tipo <strong>di</strong> dati Testo e Binario.<br />

• in<strong>di</strong>ce1, in<strong>di</strong>ce2 : proposizione CONSTRAINT<br />

che definisce un in<strong>di</strong>ce a campo singolo.<br />

+,-.(/ ,(/01, 20-03,14(/,<br />

5 65 .7,8808,.96<br />

:6;37,8,.96<br />

@A " (BC16(-67(307011676 =9(D9(305 -.(/,(ED6;1.(1,-.(F(-.;;,B,G6<br />

5 65 .7,88076(ED0G;,0;,(1,-.(/ ,(/01,H(>.9<br />

I,696(6JJ611D010(0G3D90(3.9I67;,.96(/,<br />

/01,(K 0/(6;65 -,.L(,9(16;1.M H(=G(5 ./.(,9(3D,<br />

GN,9-D1(/6,(/01,(0II,696(,9(D9(305 -.<br />

B,907,.(/61675 ,90(,G(5 ./.(,9(3D,(I,696<br />

I,;D0G,8801.(GN.D1-D1(/6,(/01,H<br />

WA ' (BC16 T9(9D5 67.(,9167.(-7.-.78,.901.(3.5 -76;.<br />

170(! X! Y ! ! H# # & H! * # H% ' ) L$ & & L) ' * ' (6<br />

Y ! ! H# # & H! * # H% ' ) H$ & & L) ' * & H<br />

:+W+=UW(K I6/676<br />

:VT+W^W@ $ (BC16 T9(9D5 67.(,9167.(GD9S .(3.5 -76;.(170<br />

! X! ! H" $ & H$ ' # H% $ ' (6(! H" $ & H$ ' # H% $ & H<br />

:W2=UZ " & (BC16 +,-.(/ ,(/01,(9D5 67,3.(6;011.(3.9(I0G.7,<br />

3.5 -76;,(170(" * ! ' (](/0(" (0(](" * ! ' (](" H(_<br />

-.;;,B,G6(/6J ,9,76(G0(- 763,;,.96(K /0(" (0(! ' M<br />

6(G0(-7.-.78,.96(K / 0(* (0(-763,;,.96<br />

/6J ,9,10M H(Z0(-763,;,.96(6(G0(-7.-.78,.96<br />

-76/6J ,9,16(;.9.(7,;-611,I05 6916(" ' (6(* H<br />

+W`+ ! (BC16(-67(307011676 :0(867.(0/(D9(5 0;;,5 .(/,(! L" $ (^


CONSTRAINT (2)<br />

• nome: nome del vincolo da creare.<br />

• primaria1, primaria2 : nome del campo o dei campi da definire<br />

come chiave primaria.<br />

• univoca1, univoca2 : nome del campo o dei campi da definire<br />

come chiave univoca.<br />

• nonnull1, nonnull2 : nome del campo o dei campi limitati a<br />

contenere valori non Null.<br />

• rif1, rif2 : nome <strong>di</strong> uno o più campi con funzione <strong>di</strong> chiave<br />

esterna che si riferiscono ai campi <strong>di</strong> un'altra tabella.<br />

• tabellaesterna : nome della tabella esterna che contiene il campo<br />

o i campi specificati da campoesterno.<br />

• campoesterno1, campoesterno2 : nome del campo o dei campi in<br />

tabellaesterna specificati da rif1, rif2. È possibile omettere questa<br />

proposizione se il campo a cui si fa riferimento è la chiave<br />

Esempio 1 : schema E/R<br />

primaria <strong>di</strong> tabellaesterna. " #<br />

" $<br />

Docente<br />

Corso<br />

(0,N)<br />

(0,1)<br />

CD<br />

CC<br />

Esempio 1 : sc. relazionale<br />

:V2W>+WK 2:L(>VUWL(2V^>VUWL<br />

2=++M<br />

2V@PVK 22L(>VUWL(2:V2W>+WM<br />

\fh(2:V2W>+W(@W\W@W>2WP<br />

:V2W>+W<br />

Esempio 1 : DDL<br />

2@W+W(++W<br />

K<br />

2:(=>+W^W@L<br />

>VUW(16b1K # * M (>V+(>TZZL<br />

2V^>VUW(16b1K # * M (>V+(>TZZL<br />

2=++(16b1K ! M L<br />

2V>P+@=>+(-cd /.36916(e@=U@A(fWAK 2:M<br />

M g<br />

" )<br />

" %


Esempio 1 : DDL<br />

2@W+W(+.5 6(3R07K # * M (>V+(>TZZL<br />

2:V2W>+W(=>+W^W@L<br />

2V>P+@=>+(-cd 3.7;.(e@=U@A(fWAK 22M L<br />

2V>P+@=>+(Jcd 3.7;.d /.36916((\V@W=^>(fWA<br />

K 2:V2W>+WM (<br />

@W\W@W>2WP<br />

:V2W>+WK 2:M<br />

M g<br />

" &<br />

Immissione dei dati<br />

• Aprire la tabella in modalità Foglio Dati facendo doppio<br />

clic 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 o tramite mouse<br />

– Selezionare e mo<strong>di</strong>ficare il contenuto<br />

– Eliminare un record<br />

– Annullare le mo<strong>di</strong>fiche apportate<br />

– Correggere gli errori <strong>di</strong> immissione<br />

" '<br />

Personalizzazione Foglio Dati<br />

• E’ possibile:<br />

– mo<strong>di</strong>ficare l’ampiezza della colonna<br />

– bloccare le colonne in modo che restino sempre<br />

visualizzate<br />

– mo<strong>di</strong>ficare l’altezza <strong>di</strong> una riga<br />

– visualizzare o nascondere le linee della griglia<br />

– mo<strong>di</strong>ficare il tipo <strong>di</strong> carattere<br />

– salvare le mo<strong>di</strong>fiche <strong>di</strong> visualizzazione (Salva layout)<br />

Esempio 1 : integrità<br />

• Provare ad inserire dati e a comprendere:<br />

– Chiave primaria<br />

– Primo vincolo <strong>di</strong> integrità<br />

– Vincolo <strong>di</strong> integrità referenziale: le opzioni ON<br />

UPDATE CASCADE e ON DELETE CASCADE<br />

• Utilizzare la Visualizzazione foglio dati<br />

• Utilizzare la finestra Strumenti\Relazioni per la<br />

visualizzazione e la mo<strong>di</strong>fica delle proprietà delle<br />

relazioni<br />

" Y<br />

! *


Estensione esempio 1<br />

Estensione esempio 1 (2)<br />

Docente<br />

(0,N)<br />

CD<br />

P+T:W>+WK U017,3.G0L(>.5 6L(2.S 9.5 6L<br />

=9/,7,88.L(2,110L(>.16d ;1D/6916M<br />

Corso<br />

(0,1)<br />

(0,N)<br />

CC<br />

Data<br />

ESAME<br />

Voto<br />

(0,N)<br />

Matricola<br />

Studente<br />

WPUWK U017,3.G0L(22.7;.L(:010L(O.1.M<br />

\fh(U017,3.G0(@W\W@W>2WP(P+T:W>+W<br />

\fh(22.7;.(@W\W@W>2WP(2V@PV<br />

! "<br />

! !<br />

Estensione esempio 1 (3)<br />

CREATE TABLE STUDENTE<br />

(<br />

MATRICOLA INTEGER,<br />

NOME char(30) NOT NULL,<br />

COGNOME char(30) NOT NULL,<br />

INDIRIZZO char(40),<br />

CITTA char(2),<br />

NOTE_STUDENTE memo,<br />

CONSTRAINT pk_studenti PRIMARY<br />

KEY(MATRICOLA)<br />

);<br />

! #<br />

Estensione esempio 1 (4)<br />

2@W+W(++W^W@L<br />

22.7;.(2a@K ! M L<br />

OV+V(PUZZ=>+L<br />

:+(:+W(>V+(>TZZL<br />

2V>P+@=>+(-cd 6;05 ,;.;169D1,(e@=U@A<br />

fWAK U+@=2VZL22.7;.M L<br />

2V>P+@=>+(Jcd 6;05 ," ((\V@W=^>(fWA(K U+@=2VZM<br />

@W\W@W>2WP(P+T:W>+WK U+@=2VZM L<br />

2V>P+@=>+(Jcd 6;05 ,! ((\V@W=^>(fWA(K 22.7;.M (@W\W@W>2WP<br />

2V@PV<br />

M g<br />

! $


CHECK<br />

• E’ possibile impostare vincoli <strong>di</strong> check<br />

solamente da Visualizzazione struttura<br />

! )<br />

Z+W@(+(!&'(()"* '(jK +&* $,-&(,&M k(j>V+<br />

>TZZk<br />

Z+W@(<br />

jL(2V>P+@=>+(.k(l<br />

2VZTU>(!&'(()"* '(jK +&* $,-&(,&M k(l<br />

(((( j2V>P+@=>+(mn (l<br />

:@Ve(i 2VZTU>()"* '((=(2V>P+@=>+<br />

,(* $)(,-!/"&,!0n<br />

n<br />

! %<br />

ALTER TABLE (2)<br />

ALTER TABLE (3)<br />

• Utilizzare(::(2VZTU>(per aggiungere un<br />

nuovo campo alla tabella.<br />

• Utilizzare(Z+W@(2VZTU>(per mo<strong>di</strong>ficare il<br />

tipo <strong>di</strong> dati <strong>di</strong> un campo esistente.<br />

• Utilizzare ::(2V>P+@=>+(per aggiungere<br />

un constraint.<br />

• Utilizzare(:@Ve(2VZTU>(per eliminare un<br />

campo.<br />

• Utilizzare(:@Ve(2V>P+@=>+(per eliminare<br />

un constraint.<br />

• tabella: nome della tabella da mo<strong>di</strong>ficare.<br />

• campo: nome del campo da aggiungere,<br />

mo<strong>di</strong>ficare o eliminare da tabella.<br />

• tipo: tipo <strong>di</strong> dati <strong>di</strong> campo.<br />

• <strong>di</strong>mensioni: <strong>di</strong>mensioni del campo in caratteri.<br />

• in<strong>di</strong>ce: in<strong>di</strong>ce per campo.<br />

• …: ve<strong>di</strong> CONSTRAINT<br />

• nomeconstraint: nome dell'in<strong>di</strong>ce multicampo da<br />

rimuovere.<br />

! &<br />

! '


ALTER TABLE - ESEMPIO<br />

Z+W@(+(:+d =>=q=V(:+WL<br />

:+d \=>W(:+WL(V@@=V(2a@K ) * M L<br />

:T@+d 2V@PV(=>+W^W@<br />

• Provare ad aggiungere l’anno accademico alla<br />

tabella corso<br />

• Aggiungere i campi in<strong>di</strong>rizzo, telefono, e-mail, e<br />

data <strong>di</strong> nascita alla tabella docente<br />

! Y<br />

ADD COLUMN E NOT NULL<br />

• Provare ad eseguire il seguente statement su una<br />

tabella(:V2W>+W(che contiene già dei record:<br />

Z+W@(++W<br />

::(2VZTU>(2\(2a@K " % M (>V+(<br />

>TZZ<br />

• In <strong>Access</strong> funziona! In <strong>MS</strong> SQL Server e Sybase<br />

ASA non funziona.<br />

• Il comportamento <strong>di</strong> <strong>Access</strong> non è corretto perché<br />

il database si trova ora in uno stato<br />

inconsistente!<br />

# *<br />

ALTER TABLE – ESEMPIO (2)<br />

ALTER TABLE (4)<br />

• Esempio <strong>di</strong> mo<strong>di</strong>fica del tipo <strong>di</strong> dato <strong>di</strong> una<br />

colonna:<br />

Z+W@(+(V@@=V(UWUV<br />

• Esempio <strong>di</strong> eliminazione <strong>di</strong> una colonna:<br />

Z+W@(+


Esercizio ALTER TABLE<br />

CC<br />

Corso<br />

(0,1)<br />

SI_TIENE_IN<br />

CREATE INDEX<br />

• Da SQL:<br />

CREATE [ UNIQUE ] INDEX in<strong>di</strong>ce<br />

ON tabella (campo [ASC|DESC][, campo [ASC|DESC],<br />

...])<br />

[WITH { PRIMARY | DISALLOW NULL | IGNORE<br />

NULL }]<br />

• In Visualizzazione struttura, menu Visualizza\In<strong>di</strong>ci<br />

(0,N)<br />

Laboratorio<br />

CL<br />

# #<br />

# $<br />

CREATE INDEX (5)<br />

• UNIQUE: impe<strong>di</strong>sce la presenza <strong>di</strong> valori duplicati.<br />

• Nella proposizione opzionale WITH, è possibile applicare<br />

regole <strong>di</strong> convalida dei dati. È possibile:<br />

– Impe<strong>di</strong>re voci Null nel campo o nei campi in<strong>di</strong>cizzati <strong>di</strong><br />

nuovi record utilizzando l'opzione DISALLOW NULL.<br />

– Impe<strong>di</strong>re che i record con valori Null nel campo o nei<br />

campi in<strong>di</strong>cizzati vengano inclusi nell'in<strong>di</strong>ce utilizzando<br />

l'opzione IGNORE NULL.<br />

– Definire il campo o i campi in<strong>di</strong>cizzati come chiave<br />

primaria utilizzando la parola riservata PRIMARY. Ciò<br />

implica che la chiave sia univoca, in modo che si possa<br />

omettere la parola riservata UNIQUE.<br />

DROP<br />

• DROP TABLE nometabella<br />

• DROP INDEX nomein<strong>di</strong>ce ON nometabella<br />

• DROP PROCEDURE nomeprocedura<br />

• DROP VIEW nomeview<br />

# )<br />

# %


Le Maschere<br />

• maschera <strong>di</strong> visualizzazione, aggiornamento e<br />

inserimento<br />

• può essere generata automaticamente a partire dalla<br />

struttura <strong>di</strong> una tabella o <strong>di</strong> una query<br />

• può essere personalizzata dal punto <strong>di</strong> vista sia grafico<br />

che funzionale<br />

! menu a ten<strong>di</strong>na, pulsanti <strong>di</strong><br />

opzione, procedure da associare ai<br />

vari eventi (pressione del mouse<br />

in un punto determinato, rilascio<br />

del mouse, ...)<br />

! procedure <strong>di</strong> controllo per vincoli<br />

<strong>di</strong> integrità<br />

Le Maschere<br />

• consentono <strong>di</strong> visualizzare e gestire in modo <strong>di</strong>verso i dati<br />

contenuti nelle tabelle<br />

<strong>Creazione</strong> <strong>di</strong> una maschera:<br />

• Visualizzare la scheda Maschere<br />

• Si può utilizzare:<br />

-funzione <strong>di</strong> autocomposizione<br />

- modalità Visualizzazione<br />

Struttura<br />

# &<br />

# '<br />

Autocomposizione Maschera<br />

<strong>Creazione</strong> maschera vuota<br />

• Si seleziona il nome della<br />

tabella o della query<br />

• Si selezionano i campi<br />

della tabella<br />

• Selezionare il formato <strong>di</strong><br />

visualizzazione:<br />

– a colonne<br />

– tabulare<br />

– foglio dati<br />

• Specificare lo stile <strong>di</strong><br />

visualizzazione<br />

• scegliere modalità visualizzazione struttura<br />

• è possibile aggiungere:<br />

– caselle <strong>di</strong> testo<br />

– etichette<br />

– altri controlli (pulsanti, casella <strong>di</strong> controllo, casella combinata<br />

etc...)<br />

La finestra <strong>di</strong> lavoro è costituita da:<br />

• area <strong>di</strong> lavoro<br />

• strumenti<br />

– barra degli strumenti<br />

– righelli<br />

– casella degli strumenti<br />

• Specificare il titolo # Y<br />

$ *


Sezioni <strong>di</strong> una maschera<br />

• Una maschera può essere sud<strong>di</strong>visa in<br />

cinque sezioni:<br />

– Intestazione maschera<br />

– Intestazione pagina<br />

– Corpo<br />

– Piè <strong>di</strong> pagina pagina<br />

– Piè <strong>di</strong> pagina maschera<br />

• <strong>di</strong> default viene visualizzato solo il corpo<br />

• è possibile mo<strong>di</strong>ficare le <strong>di</strong>mensioni <strong>di</strong> ciascuna<br />

sezione e specificare le proprietà<br />

Mo<strong>di</strong>fica proprietà <strong>di</strong> una<br />

maschera<br />

• Si può accedere alle proprietà<br />

della maschera cliccando con<br />

il tasto destro del mouse sulla<br />

cornice della maschera<br />

(visualizzata in modalità<br />

struttura), oppure dal menu<br />

Mo<strong>di</strong>fica (seleziona<br />

maschera); In entrambi i casi<br />

si seleziona Proprietà per<br />

visualizzare le roprietà della<br />

maschera.<br />

$ "<br />

$ !<br />

Casella degli strumenti 1<br />

• Seleziona oggetti<br />

• Autocomposizione controllo<br />

• Etichetta<br />

• Casella <strong>di</strong> testo<br />

• Gruppo <strong>di</strong> opzioni<br />

• Interruttore<br />

• Pulsante <strong>di</strong> opzione<br />

• Casella <strong>di</strong> controllo<br />

• Casella combinata<br />

• Casella <strong>di</strong> riepilogo<br />

Casella degli strumenti 2<br />

• Pulsante <strong>di</strong> comando<br />

• Immagine<br />

• Cornice oggetto non associato<br />

• Cornice oggetto associato<br />

• Interruzione <strong>di</strong> pagina<br />

• Sottomaschera/sottoreport<br />

• Linea<br />

• Rettangolo<br />

$ #<br />

$ $


Proprietà campi<br />

E` possibile mo<strong>di</strong>ficare le proprietà <strong>di</strong> ciascun campo<br />

Maschere basate su più tabelle<br />

Esistono tre modalità:<br />

• basare la maschere su una query<br />

• selezionare campi <strong>di</strong> <strong>di</strong>verse tabelle tramite la<br />

procedura <strong>di</strong> autocomposizione tabella<br />

• creare una sottomaschera che consente <strong>di</strong><br />

visualizzare la relazione esistente tra i record <strong>di</strong><br />

<strong>di</strong>verse tabelle<br />

$ )<br />

$ %<br />

Sottomaschere<br />

! vengono usate soprattutto per<br />

visualizzare i record<br />

contenuti in tabelle collegate<br />

con relazioni del tipo uno a<br />

molti<br />

! è possibile crearle con la<br />

modalità autocomposizione:<br />

"#creare la maschera principale<br />

$#utilizzare lo strumento<br />

Sottomaschera/Sottoreport per<br />

creare la sottomaschera sulla<br />

griglia della maschera principale<br />

<strong>Creazione</strong> <strong>di</strong> una sottomaschera<br />

• Creare la maschera principale<br />

• Creare la sottomaschera<br />

• Riaprire la maschera principale in visualizzazione<br />

struttura<br />

• Trascinare dalla finestra <strong>di</strong> database il nome della<br />

sottomaschera sulla griglia della maschera principale<br />

• Verificare che nella tavola delle proprietà della<br />

sottomaschera le proprietà Collega campi secondari e<br />

Collega campi master contengano i campi che<br />

collegano la maschera principale e la sottomaschera<br />

$ &<br />

$ '


Report<br />

Report<br />

• per la produzione<br />

<strong>di</strong> stampe<br />

• personalizzare le<br />

intestazioni<br />

• definire gruppi e<br />

sottogruppi<br />

• calcolare totali<br />

parziali sui gruppi<br />

• Un report è una presentazione <strong>di</strong> dati, provenienti<br />

da una o più tabelle, formattata e stampata.<br />

• Può essere basato su una tabella o su una query<br />

• Può essere utilizzato per una stampa dei dati, ma<br />

non per la loro immissione o mo<strong>di</strong>fica<br />

$ Y<br />

) *<br />

<strong>Creazione</strong> <strong>di</strong> un report<br />

Esistono tre modalità:<br />

! <strong>Creazione</strong> tramite la funzione<br />

Report Standard<br />

• formato a colonne<br />

• formato tabulare<br />

! <strong>Creazione</strong> tramite<br />

autocomposizione<br />

– selezione dei campi<br />

– livello <strong>di</strong> raggruppamento dati<br />

– tipo <strong>di</strong> or<strong>di</strong>namento<br />

– layout e stile<br />

! <strong>Creazione</strong> report vuoto<br />

Finestra <strong>di</strong> struttura <strong>di</strong> un report<br />

• È simile a quella <strong>di</strong> una maschera<br />

• È sud<strong>di</strong>viso in sezioni:<br />

– Intestazione report<br />

– Intestazione pagina<br />

– Intestazione nome_raggruppamento<br />

– Corpo<br />

– Piè <strong>di</strong> pagina nome_raggruppamento<br />

– Piè <strong>di</strong> pagina pagina<br />

– Piè <strong>di</strong> pagina report<br />

) "<br />

) !


Or<strong>di</strong>namento e raggruppamento dei dati<br />

Si può impostare:<br />

• Tramite la procedura <strong>di</strong> autocomposizione selezionando il campo<br />

secondo il quale si desidera raggruppare i record<br />

• Direttamente nella struttura del report<br />

– fare clic sullo strumento Or<strong>di</strong>namento e raggruppamento della<br />

barra degli strumenti<br />

– selezionare il campo su cui basare l’or<strong>di</strong>namento o il<br />

raggruppamento<br />

– selezionare il criterio <strong>di</strong> or<strong>di</strong>namento<br />

– se si vuole usare il campo per il raggruppamento e avere una<br />

intestazione <strong>di</strong> gruppo mo<strong>di</strong>ficare in Si la proprietà Intestazione<br />

(gruppo)<br />

– se si vuole usare il campo per il raggruppamento e avere un piè <strong>di</strong><br />

pagina <strong>di</strong> gruppo, mo<strong>di</strong>ficare in Si la proprietà Piè pagina<br />

(gruppo)<br />

) #<br />

Calcoli in un report<br />

• Dalla finestra si struttura inserire una casella <strong>di</strong> testo<br />

standard non associata<br />

• Per immettere un’espressione:<br />

– <strong>di</strong>gitare l’espressione nella casella iniziando con il segno<br />

uguale (=), oppure<br />

– aprire la tavola delle proprietà e <strong>di</strong>gitare l’espressione nella<br />

propietà Origine controllo o utilizzare il generatore <strong>di</strong><br />

espressioni<br />

• se si colloca il campo calcolato in una sezione relativa ad un<br />

gruppo il calcolo si riferisce al gruppo, se lo si colloca in una<br />

sezione relativa al report il calcolo si riferisce a tutti i record,<br />

se lo si colloca nella sezione Corpo, il calcolo si basa solo sul<br />

record<br />

) $<br />

Aggiunta <strong>di</strong> numeri <strong>di</strong> pagina e date<br />

Si possono utilizzare:<br />

• le funzioni =Date() o<br />

=Now() =Pagina in un<br />

controllo calcolato;<br />

• utilizzare i coman<strong>di</strong> del<br />

menu Inserisci<br />

– Numeri <strong>di</strong> pagina…<br />

– Data e ora...<br />

) )

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

Saved successfully!

Ooh no, something went wrong!