Fondamenti di Access97-2000
Argomenti trattati:
Tabelle (pag. 8) Maschere (pag. 18) SottoMaschere (pag. 23) Filtri (pag. 29)
Autocomposizione Query (pag. 30)
Query di Comando e Sql (pag. 37)
Autocomposizione report (pag. 39)
Creazione manuale report (pag. 45)
Un database non è altro che una raccolta organizzata di informazioni riguardanti un certo
argomento. Nella vita di tutti i giorni, usiamo dei database: la rubrica telefonica, un elenco di
clienti, un catalogo di prodotti, le schede del personale, e così via. Grazie a Microsoft ACCESS si
può realizzare un database per memorizzare ed elaborare tutte le informazioni di cui si ha bisogno.
I programmi come ACCESS (DBMS) si usano per creare file database, per gestirli e per, facilmente,
ricercare al loro interno le informazioni che servono in un certo momento. La descrizione ufficiale
di DBMS è sistema di gestione di database relazionali ove il termine “relazionale” significa che si
possono stabilire dei collegamenti detti relazioni tra diverse tabelle di uno stesso database.
Ogni database creato con ACCESS contiene quattro tipi diversi di oggetti: tabelle, maschere, query e
report. Per essere più precisi, ne esistono altre tre: pagine, macro e moduli. Consistono in strumenti
abbastanza complessi che si impiegano per costruire delle applicazioni.
Passi da seguire per la costruzione di un database relazionale utilizzando Microsoft Access
Quando si vuole costruire un programma in ACCESS occorre seguire una serie di passi ben precisi,
quali:
Analisi del problema
Creazione degli archivi (Tabelle)
Creazione delle relazioni tra un archivio e l’altro
Creazione della struttura elaborativa dell’applicazione (Query)
Creazione delle maschere
Creazione dei Report
Creazione delle Macro.
Testing e tuning del programma.
Analisi
A prescindere da qualsiasi database e linguaggio di programmazione si voglia utilizzare, il primo
passo da seguire è il compimento di una buona analisi del problema. Ciò consiste nell’esame di una
situazione reale, di un modello o di un problema, effettuato attraverso la sua scomposizione in
elementi più semplici, lo studio del comportamento dei singoli componenti e l’individuazione dei
collegamenti funzionali che sussistono tra essi. Il modo più efficace per iniziare il progetto di un
database consiste nel disegnarlo su carta, cercando di estrinsecare dal problema i dati di partenza, i
risultati da ottenere ed il percorso logico elaborativo mediante il quale si vogliono ottenere.
I concetti base: tabella, campo, record, chiave primaria, chiave esterna e relazione tra tabelle
Nei database ACCESS, le informazioni si immagazzinano in un oggetto che si chiama tabella
strutturato in record omogenei tra loro, ovvero le tabelle sono un insieme di righe e colonne, dove
ogni colonna rappresenta un campo cioè una singola categoria di informazioni, ed ogni riga
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
1
rappresenta un record ovvero una singola voce di una tabella. Ma facciamo un esempio:
Supponiamo di voler creare un database denominato azienda che vada a raccogliere in modo
organizzato le informazioni riguardanti: i dipendenti di una azienda (ad es. la Software
Engineering SpA), i loro contratti e le loro attività all’interno della azienda:
- poiché ciascun dipendente potrà avere un contratto diverso, uno stipendio base diverso, una
data di inizio e di fine rapporto di lavoro diverso e un codice contratto diverso allora potremmo
costruire una tabella denominata contratti fatta così (vedi fig.1):
Cod_Contr
011
02
03
tabella logica contratti (fig.1)
tipo_contratto stipendio_base data_inizio data_fine
2
determinato
1.500
01.01.04
indeterminato
1.500
01.12.02
consulente
2.000
11.09.00
21.09.00
(fig.2)
ove: le colonne della tabella si chiamano campi individuati ciascuno da un nome (come
tipo_contratto, stipendio_base, ecc.) detto nome del campo. Ciascuna riga della tabella
contratti si chiama record. In particolare poiché il campo cod_contratto è diverso per ogni
tale campo individua univocamente ciascun record di tale tabella, cioè non esiste
dipendente
nessuna coppia di record della tabella che ha lo stesso valore nel campo cod_contratto per tal
motivo tale campo si definisce chiave primaria.
La tabella logica (fig.1) come verrà rappresentata fisicamente in Access? In Access verrà
rappresentata come la tabella di fig.2 contenente solo il nome dei campi e in neretto il campo
chiave primaria.
- poiché di ciascun dipendente è importante conoscere le generalità come: nomeCognome,
dataNascita, qualifica, indirizzo, CAP, città e provincia oltre ad un codice personale allora
potremmo costruire una seconda tabella denominata dipendenti fatta così:
codPers
001
002
003
nomeCogn
Mario Rossi
Marco Saro
Rita Chiesa
tabella logica dipendenti (fig.1)
dataNasc
12.01.77
11.12.74
21.07.65
qualifica
dirigente
impiegato
operaio
indirizzo
Via XX sett
Via Milano
Via napoli
CAP
21052
21100
81100
città
caserta
roma
napoli
prov
CE
RM
NA
La tabella Dipendenti fisica in Access viene rappresentata così (fig.2):
1
Un codice in access è un campo di tipo contatore e quindi deve essere un numero. Per distinguere nelle tre
tabelle che considereremo i codici associati, indicheremo il codPers con due cifre, il codContr a tre cifre e il
codAtt a quattro cifre.
2
Nel campo data_fine ci può essere anche il valore NULL se il dipendente sta ancora lavorando in quella
azienda.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
2
La tabella logica (fig.1) come verrà rappresentata fisicamente in Access? In Access verrà
rappresentata come la tabella di fig.2 contenente solo il nome dei campi e in neretto il campo
chiave primaria. Essa come vediamo presenta anche un altro campo: il campo Cod_Contratto
che cosa sarà mai?
- Concetto di relazione 1: N (o 1 a molti) tra due tabelle.
Poiché tra le tabelle Contratti e Dipendenti c’è questa relazione: un solo contratto è relazionato
(cioè associato, assegnato) a 1 o più dipendenti ma non il viceversa, si dice che tra esse c’è una
relazione 1:N
Tale relazione si realizza in Access andando ad inserire nella tabella dipendenti un campo
aggiuntivo detto chiave esterna che dovrà contenere come valori quelli della chiave primaria
della tabella da correlare, eventualmente duplicati3. La correlazione, ovvero la creazione fisica
di una relazione 1: N tra le due tabelle in Access è rappresentata così:
cioè è usato il simbolo di al fianco del campo della chiave esterna. Per vedere come essa si
realizza leggere più avanti4.
- Concetto di relazione N:N (molti a molti)
Tornando al nostro database azienda, abbiamo detto che era importante elencare per
ciascun dipendente le sue attività all’interno dell’azienda, allora potremmo creare una terza
tabella denominata appunto attività che raccolga le informazioni: il tipo di attività svolta da
ciascun dipendente e un codice attività che la individui univocamente, ovvero una tabella
del tipo:
tabella logica Attività (fig.1)
cod_attività
0001
0002
0003
nomeProgetto
SupportoClienti
Data Entry
Consulente commerciale
tabella fisica Attività in Access (fig.2)
3
Poiché ciascun record di contratti è associabile ad 1 o più record di dipendenti, allora è chiaro che nella
tabella dipendenti uno o più record possono avere lo stesso valore di chiave esterna.Poichè non è possibile immettere un valore nella chiave est. di dip. se tale val. non esiste tra quelli della chiave prim. di tab. contr,
quando si costruisce la strutt. della tab. dipend., per comodità, si definisce la chiave est come cas. di riepilogo.
4
Altro esempio di relazione 1:N - supponendo di dover costruire un database che vada a raccogliere in modo
organizzato i dati degli studenti di un istituto superiore e supponendo di aver già creato due tabelle: una
contenente i dati dei diplomi assegnati (tra c u il codDiploma) e un’ altra denominata studenti contenente i
dati degli studenti (tra cui la matricola) allora tra esse esiste relazione 1: N
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
3
Che relazione c’è tra le tabelle Attività e Dipendenti?
Tra la tabella Attività e la tabella Dipendenti c’è una relazione N:N ovvero ogni dipendente
dell’azienda può svolgere da 1 a N attività e viceversa, cioè ogni attività può essere svolta da 1
o N dipendenti. Ma come si realizza in Access una tale relazione? Access non permette di
realizzare relazioni N:N tra due tabelle, se non attraverso l’ausilio di una tabella di appoggio
intermedia5 che vada a spezzare la relazione N:N tra le tabelle Dipendenti e Attività in due altre
relazioni 1: N. Ebbene cosi faremo noi.
Questa tabella intermedia da creare per poter essere collegata alle due tabelle già esistenti
Dipendenti e Attività dovrà necessariamente contenere due campi associati alle loro chiavi
primarie, ovvero due chiavi esterne. Inoltre essa potrebbe contenere altri campi ma per
semplicità in tal contesto non li consideriamo. Chiamiamo tale tabella intermedia (visto che
collega le tabelle Dipendenti e Attività) Dip_Attività6. Essa allora sarà fatta così:
tabella logica Dip_Attività
Cod_personale Cod_attività
001
0001
002
0002
003
0003
tabella fisica Dip_Attività n Access
Inserendo in tale tabella intermedia come campi le chiavi esterne alle due tabelle Attività e
Dipendenti automaticamente stiamo creando le due relazioni 1:N richieste da Access.7 La
correlazione, ovvero la creazione fisica delle due relazione 1:N tra le tabelle Attività e
Dip_Attività e tra le tabelle Dip_Attività e Dipendenti in Access è rappresentata così:
cioè è usato il simbolo di al fianco di ciascun campo chiave esterna. Quella di fig. rappresenta la
struttura relaz. finora creata del db azienda, che soddisfa anche il requisito di integrità referenziale.
Query
La query è una delle funzioni più potenti di ACCESS ovvero quella di interrogare un database
per reperire determinate informazioni.Tutte le query che vengono “scritte” in ACCESS sono, in
maniera trasparente, tradotte in linguaggio SQL (Structured Query Language).
Maschere
Una maschera è una rappresentazione a video di un modulo su carta. Formalmente una
maschera è l’interfaccia grafica su video tramite la quale si possono rappresentare dei dati,
inserire ed aggiornare. Si può
5
Che faccia da “ponte” tra le due tabelle Dipendenti e Attività
E’ difficile giustificare logicamente la relazione 1:N che Access riesce ad individuare, se si utilizza quale tab
intermedia solo quella contenente come campi le chiavi esterne delle due tab. associate Attività e Dipendenti
7
Le chiavi esterne Cod_Pers e Cod_Attività saranno costruite come caselle di riepilogo per quanto detto su.
6
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
4
Fondamenti di Access97-2000
risparmiare almeno in parte la noia del lavoro di inserimento dati usando le maschere. Una maschera
di ACCESS permette di visualizzare le informazioni in modi differenti. È possibile visualizzare e
modificare gruppi di record, o visualizzare tutti i campi di un singolo record all’interno di una
maschera.
Report
Fino a questo punto, sono state create e utilizzate le tabelle per l’immagazzinamento di dati; le
maschere per la loro visualizzazione, per l’inserimento e per la modifica; e infine, le query per
elaborare delle informazioni. Ebbene per condividere le informazioni con qualcun altro è necessario
anche essere in grado di stampare i dati, come? Tramite i report. Formalmente un report è
un’interfaccia grafica su stampante tramite la quale rappresentare un set di informazioni. Per molti
aspetti, la realizzazione di un report è simile all’impos tazione di una maschera: è possibile scegliere
in che modo raggruppare i record, selezionare i campi da includere e determinare la posizione dei
campi nel report. La maggior parte delle tecniche valide per creare una maschera valgono anche per
la definizione di un report. Quando si realizza un report, risulta semplice fornire informazioni
riassuntive, come totali, subtotali e percentuali, per gruppi di record, o per il report completo.
Macro
Servono per collegare il tutto. Senza macro o procedure evento (cioè il codice vero e proprio) non è
possibile creare un programma chiuso nel vero senso della parola. Quindi, formalmente, possiamo
dire che le macro sono utilizzate per automatizzare delle operazioni ripetitive e quindi una macro
è un elenco e servono per collegare il tutto.
Testing e Tuning del database realizzato
Il testing e tuning non è altro che una prova di funzionamento cioè, una attività che ha lo scopo di
verificare il buon funzionamento del database relazionale ovvero la sua rispondenza ai prerequisiti.
Durante questa fase si procederà anche all’error simulation ovvero la simulazione di errori per
prevedere qualsiasi stato della macchina.
Apertura dell’applicativo Access97
Barra delle applicazioni -> Start -> Programmi -> Office 97 -> Microsoft Access 97.
Apertura database Northwind (o di un database di esempio qualsiasi)
Access mette a disposizione un database di esempio già creato e di prova per gli studenti:
Northwind. Dove sta Northwind? Come trovarlo?
a) Andare su Trova -> Disco locale C -> Northwind
b) Sfoglia -> C:\Programmi\Microsoft Office\Office\Esempi
Lanciato il programma Access97 compare a video la seguente finestra di dialogo:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
5
Fondamenti di Access97-2000
in cui selezioniamo Apri file esistente -> Northwind
In alto sono presenti inoltre i pulsanti:
spiegati da Access cliccandoci sopra
Aperto il database Northwind compare la seguente finestra di dialogo costituita dai seguenti
oggetti: Tabelle, Query, Maschere, Report, Macro e Moduli.
A questo punto possiamo familiarizzare con gli oggetti creati nel database Nothwind e che ci
accingeremo a creare in seguito ex novo nella creazione del nostro primo database Azienda.
Creazione di un nuovo database
scelta l’opzione Database vuoto successivamente compare la finestra di dialogo per salvare s ubito il
nuovo database creato.
Access da l’estensione .mdb (Microsoft Data Base) ai suoi file.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
6
Fondamenti di Access97-2000
Autocomposizione Database
Scelto la voce Autocomposizione Database, compare la seguente finestra di dialogo contenente i
modelli di database che è possibile far generare automaticamente dall’applicativo Access97, ad es.
generiamo il database Ore di lavoro e fatturazione (di una azienda) selezionato sotto:
Il database che decideremo di generare rappresenterà come il precedente Northwind un altro
database di esempio, infatti tale procedura di autocomposizione è in genere poco usata per
applicazioni Access di un certo rilievo.
CHIUSURA SOLO DEL DATABASE E NON DEL PROGRAMMA DI GESTIONE, OVVERO DI ACCESS 97
- Per chiudere solo il database basta selezionare la finestra del database e fare click su chiudi.
- Per chiudere il database e il programma di gestione -> Menù File -> Esci.
Come Modificare le impostazioni di base di Access 97
Dal menù Strumenti -> Opzioni -> compare la seguente finestra di dialogo:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
7
Fondamenti di Access97-2000
CREAZIONE TABELLA
Prima di avviare questa funzione, si deve dire ad ACCESS che si vuole creare una nuova tabella,
nel seguente modo:
Scelta la scheda tabella -> selezionare il comando Nuovo e nella finestra di dialogo che compare
selezionare Visualizzazione struttura -> OK.
TASTI RAPIDI PER APRIRE UNA TABELLA IN VISUALIZZAZIONE STRUTTURA O FOGLIO DATI
Per aprire una tabella già creata in visualizzazione struttura o in visualizzazione foglio dati si può:
- selezionare la tabella -> digitare i pulsanti Apri o Struttura posti sul lato destro.
- selezionare la tabella -> tasto destro del mouse -> cliccare sul triangolino verde
o su Apri
La funzione di Autocomposizione tabella facilita molto la creazione delle tabelle, ma non è
perfetta. Per prima ragione, anche se può vantare una collezione ammirevole di tabelle d’esempio,
certamente i campioni non coprono ogni possibile configurazione. La seconda ragione è che le
tabelle così create non rappresentano il massimo dell’efficienza. Per avere maggiore controllo sulle
tabelle, sarà necessario costruirle manualmente.
TABELLA IN VISUALIZZAZIONE STRUTTURA
Quindi per ciascun campo si dovranno fare quattro cose:
1. Inserire il nome di un campo.
2. Assegnare al campo un tipo dati.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
8
Fondamenti di Access97-2000
3. Inserire una descrizione del campo.
4. Impostare le proprietà del campo (ad es. la dimensione del campo).
Come inserire il nome di un campo
Si usa la colonna Nome campo. É un compito normalmente molto semplice, ma è necessario
seguire alcuni accorgimenti:
I nomi possono essere lunghi al massimo 64 caratteri, c’è quindi molto spazio per usare dei nomi
descrittivi. Soltanto un avvertimento: più lunghi sono i nomi, meno campi saranno visibili sullo
schermo al momento di inserire i dati nella tabella.
Si può usare qualsiasi combinazione di lettere, numeri, spazi o caratteri, ma non si possono usare il
punto (.), il punto esclamativo (!), l’apice (‘) e le parentesi quadre ([ ]).
Ogni nome deve essere unico in quella tabella. ACCESS non permette nomi di campi doppi nella
stessa tabella.
Dopo aver inserito i nomi dei campi, premere Tab o Invio o i tasti freccia per spostarsi alla colonna
Tipo Dati.
Come definire il tipo dati di un campo
La colonna tipo dati si usa per dire ad ACCESS che tipo di dati comparirà nel campo. Fare clic sulla
freccia per visualizzare l’elenco a discesa e selezionare uno dei seguenti tipi di dati:
Testo. E’ un tipo per campi che devono contenere una combinazione di lettere, numeri e simboli (ad
esempio parentesi e trattini). Questi campi saranno di solito inserimenti molto brevi (il massimo è
255 caratteri), nomi, indirizzi e numeri di telefono. Per campi puramente numerici, è opportuno
usare il tipo Numerico o Valuta. Il tipo testo è adatto per campi sui quali non vengono effettuati
controlli e né operazioni aritmetiche su ciò che esso contiene. Ad es. per il campo telefono è meglio
lasciare il tipo predefinito testo. Il vantaggio è che in questo modo è possibile inserire anche una
barra o un trattino o uno spazio bianco nel campo non correndo il rischio di vedere scomparire lo
zero iniziale del prefisso. Access 97 per default assegna 255 caratteri ad ogni campo di tipo testo.
(Access 2000 e XP invece per default ne assegnano 50).
Memo. Si usa questo tipo per inserimenti alfanumerici più lunghi. I campi di tipo Memo
comprendono di solito frasi o interi paragrafi e possono contenere fino a 65535 caratteri. I campi di
questo tipo sono utili per l’inserimento di testi molto lunghi o per annotazioni. Il campo Memo non
può essere però incluso nei criteri di una query, perché non è un campo vero e proprio ma un
particolare collegamento ad un file esterno al database in costruzione. D’altra parte in questo modo
non viene occupato un cospiquo spazio fisso all’interno del database in costruzione.
Numerico. Si usa questo tipo per campi che conterranno esclusivamente numeri ed è
particolarmente indicato per quei campi che si useranno per fare dei calcoli.
Da notare che nella scheda generale delle proprietà alla voce dimensione del campo è selezionato
per default il tipo intero lungo che usa 16 bit. Con tali bit l’intervallo (min_rappr, max_rappr) =
( -2^15, 2^15-1) = ( -32768, 32767) ( -2^15 = -2^10 * 2^5 = -1024* 32 = - 32768).
Data/Ora. Questo tipo è destinato a campi che conterranno solo date e orari. Per il tipo data/ora
bisogna subito specificare se si tratta di un tipo data o di un tipo ora. Basta andare nella Scheda
Generale -> Proprietà Formato.
Valuta. Si usa questo campo per indicare importi in denaro. Access per questo tipo visualizza in
automatico il simbolo della valuta in Lire all’inizio del campo. (Access 2000 da anche la possibilità
di scegliere il simbolo di Eur).
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
9
Fondamenti di Access97-2000
Contatore. Esso è un numero che non viene inserito dall’utente, ma che parte da 1 e viene
incrementato automaticamente dal programma di gestione ogni volta che si aggiunge un record. E’
utile nell’importazione della chiave primaria, ovvero pe r avere un codice unico per ogni riga della
tabella.
Si/No. Si usa questo tipo per campi che conterranno soltanto valori booleani di tipo Si o No. Ad es.
dipendente sposato o non sposato.
Collegamento ipertestuale.
Tale tipo consente di inserire dei collegamenti (attivi, sui quali è possibile cliccare per raggiungere
la destinazione) a indirizzi Web o a file disponibili localmente o a un indirizzo di posta elettronica
(ad es. il collegamento ipertestuale alla home page di un fornitore).
Oggetto OLE (Object Linkink & Embedding cioè collegamento e incorporamento di oggetti).
Questo tipo permette di collegare alla tabella corrente oggetti multimediali come: foto, disegni,
filmati, suoni, grafici, disegni AutoCAD, ecc.
In questo modo l’occupazione dello spazio nell’archivio rimane limitata a quella del collegamento
al file che contiene l’oggetto, che invece può essere quanto grande si desidera.
Una volta selezionato il tipo di dati, premere Tab o invio o tasti freccia per spostarsi alla colonna
Descrizione.
Esercizio: (riprendiamo il database azienda visto su per completarlo con altri oggetti)
Costruire un database Azienda costituito dalle seguenti tabelle:
- una tabella da denominare Dipendenti avente i seguenti campi: CodPers (tipo contatore),
Cognome (tipo txt(25)), Nome (tipo txt(30)), Indirizzo (tipo txt(50)), CAP (tipo txt(5)), Città (tipo
txt(30)), Provincia (txt(2)), DataNascita (tipo data/ora), Qualifica (tipo txt(25)), telefono (tipo
txt(10)), foto (tipo Object OLE), Sposato (tipo Si/No), Note (tipo memo) e infine CodContratto
(tipo numerico(3))
Osservazione
- CodContratto sarà la chiave esterna corrispondente al campo chiave primaria CodContr della
successiva tabella Contratti che creeremo.
- Questa relazione tra i due campi chiave: esterna CodContratto della tabella Dipendenti e
CodContr (primaria) della tabella Contratti ci permetterà di collegare le due tabelle.
- Da notare che in Access non è possibile definire in una stessa tabella due campi di tipo contatore
(il tipo contatore si assegna al solo campo della tabella che funge da chiave primaria), per tal motivo
la chiave esterna (che è in genere un campo appartenente alla medesima tabella ove già è presente la
chiave primaria) si definisce di tipo numerico e questo perché i due campi in relazione tra due le
tabelle devono essere dello stesso tipo. Ma i tipi numerico e contatore non sembrerebbero dello
stesso tipo, invece è così perché il tipo contatore non è altro che un tipo numerico particolare.
- la tabella Contratti ha i seguenti campi: CodContr (tipo contatore), TipoDiContratto (txt(30)),
StipendioBase (tipo valuta), DataScadenza (tipo data/ora (8))), DataInizioRapporto (tipo
data/ora(8))), DataFineRapporto ( tipo data/ora(8)).
Tra la tabella Contratti e la tabella Dipendenti c’è una relazione 1:N (un solo contratto è
assegnato a 1 o più dipendenti ma non il viceversa).
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
10
Fondamenti di Access97-2000
- la tabella Attività ha i due seguenti due campi: CodAttività (tipo contatore), TipoAttività
(testo(25)). Tale tabella Attività riguarda tutte le possibili attività dei dipendenti: supporto clienti,
inserimento dati (data entry), operatore call center, consulente commerciale, ecc..
Tra la tabella Attività e la tabella Dipendenti c’è un a relazione N : N (ogni dipendente dell’azienda
può svolgere da 1 a N attività e viceversa, cioè ogni attività può essere svolta da 1 o N dipendenti).
Ma se tra le tabelle Dipendenti e Attività c’è una relazione N:N essa non è possibile costruirla in
Access se non utilizzando una ulteriore tabella di appoggio che noi chiameremo tabella
DipAttività la quale permette di spezzare la relazione N:N che esiste tra le tabelle Attività e
Dipendenti in due relazioni 1: N.
Tale tabella DipAttività ha i seguenti due campi: Cod_Pers (tipo numerico) e Cod_Attività (tipo
numerico) nessuno dei quali deve essere definito come chiave primaria, ma come chiavi esterne.
- la tabella OreLavorative avente i seguenti campi: CodOre (tipo contatore chiave primaria), coddip (tipo numerico), Data (tipo data/ora), Tipo (è il tipo di straordinario, di tipo testo, magari
definito tramite una casella combinata) e Numeroh (di tipo numerico).
Tra la tabella Dipendenti e la tabella OreLavorative ci sarà una relazione 1:N (un solo dipendente
può effettuare un certo numero di ore di lavoro in 1 o più giorni ma non vale il viceversa).
Unendo le tabelle suddette abbiamo il seguente database relazionale:
Creazione tabella Dipendenti in modalità struttura.
Selezionata la scheda tabella -> pulsante Nuovo -> modalità struttura -> Ok.
Nella struttura della tabella inserire tutti i campi e suoi tipi come suddetto, dopodiché chiudendo la
finestra della tabella compare la finestra:
.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
11
Fondamenti di Access97-2000
che richiede di specificare per la tabella creata il nome e così noi inseriamo il nome Dipendenti.
Definire una chiave primaria in una tabella
Dopo aver salvato la tabella Dipendenti Access chiede se vogliamo definire una chiave primaria
visto che non l’abb iamo definita ancora -> allora la risposta è Annulla -> ritorniamo in modalità
struttura -> selezionare il campo chiave che dovrà essere la chiave primaria della tabella e poi
scegliere una delle due seguenti strade per attivarla:
1) Menù Modifica -> Chiave Primaria.
2) Sulla barra degli strumenti -> premere il pulsante
.
Andiamo a creare in modalità struttura le altre tre tabelle: Contratti, Attività e Cod_Attività,
tenendo presente che:
- nella tabella Contratti la chiave primaria sarà il campo CodContr;
- nella tabella Attività la chiave primaria sarà il campo CodAttività;
- nella tabella Cod_Attività non ci dovranno essere chiavi primarie e questo perché gli unici due
campi che in essa si definiscono sono entrambi chiavi esterne. N.B. Nel caso uno dei due campi,
confondendosi, si definisse chiave primaria non si avrebbe più una relazione 1:N, ma una relazione
1:1 relazione che avviene tra due chiavi primarie di due tabelle. Tale fatto è comunque suggerito
anche dall’applicativo Access nella sottofinestra Relazioni (vedi sotto).
Creazione relazioni tra le tabelle create.
Andare sul Menù Strumenti -> Relazioni -> Tasto destro mouse -> Mostra Tabella. Compare la
finestra di dialogo:
dalla quale scegliamo le tabelle che vogliamo successivamente mettere in relazione.
Inserite tutte le tabelle per metterle in relazione si usa il tasto destro del mouse, che va a creare dei
collegamenti tra la chiave primaria di una tabella e la chiave esterna di una altra tabella. Spostando
il mouse e tenendo contemporaneamente cliccato il tasto destro del mouse dopo aver collegato due
chiavi di due tabelle compare la seguente finestra relazione
Quando si vuole creare
una relazione 1:N in
Access97 bisogna
selezionare la voce
Applica Integrità
referenziale
Suggerimento di
Access 97
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
12
Fondamenti di Access97-2000
Nella relazione 1:N un solo record della prima tabella corrisponde ad uno o molti record nella
seconda tabella. Tale vincolo è segnato da Access come 1 : ∞ (cioè da 1 a infinito)
Il vincolo di integrità referenziale
Se due tabelle sono correlate da una relazione 1:N con il vincolo di Integrità Referenziale Access 97
non permette di inserire nuovi valori alla chiave esterna di una tabella se non dopo aver inseriti gli
stessi valori nella chiave primaria ad essa corrispondente. Ad esempio: la tabella Dip_Attività
contiene le chiavi esterne delle due tabelle Attività e Dipendenti ad essa correlate. Ebbene Access
97 non ci permette di andare ad inserire nuovi valori dei campi chiave esterne Cod_Pers e
Cod_Attività se non prima tali valori sono stati inseriti nelle chiavi primarie corrispondenti
Cod_Personale e Cod_Attività.
Popolare le tabelle del database relazionale
Per evitare problemi di integrità referenziale è necessario: impostare la modalità casella combinata
per le chiavi esterne contenute nelle tabelle, popolare la tabella appena creata e collegare le
tabelle da relazionare mediante una relazione solo dopo che tutte esse sono state popolate.
Popolata una sola tabella: vediamo le operazioni sui record di una tabella aprendola in
visualizzazione foglio dati.
Come popolare una tabella in modo veloce? Carica Dati Esterni al Database creato.
Esso rappresenta un metodo rapido per l’insegnante per popolare una tabella in poco tempo.
I passi da seguire sono:
1) Cercare nel disco locale C il database di esempio Northwind e salvarlo per comodità sul Desktop.
2) Aprire il database Azienda e selezionare l’oggetto Tabella (fig.1)
(Fig. 1)
(Fig. 2)
3) Menu File -> Carica Dati Esterni ->
-> Selezionare il file Access (noi selezioneremo
il file Northwind) da cui si desidera importare la tabella e poi su un nuovo pulsante
.
4) Il pulsante
genera la visualizzazione della finestra di dialogo seguente:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
13
Fondamenti di Access97-2000
La suddetta finestra presenta tutte le tabelle del database Northwind che si possono importare tra le
tabelle del nostro database Azienda, allora noi sceglieremo la tabella Prodotti -> OK . Il risultato è
nella fig.2 alla pagina precedente.
Osservazione
Dalla finestra di dialogo Importa Oggetti si comprende facilmente che noi possiamo importare dal
database Northwind nel nostro database Azienda oltre alla tabella Prodotti anche altre tabelle e
anche gli altri oggetti: maschere, query, report, macro e moduli.
Popolata una tabella: vediamo le operazioni sui record di una tabella aprendola in
visualizzazione foglio dati.
• Gli oggetti che saltano subito agli occhi sono:
- Selettori di record:
(indica il record corrente)
(quando si edita un record)
(indica una riga in cui possiamo aggiungere un nuovo record).
E’ detta barra di navigazione ed è fatta da 5 bottoni.
- Presenza delle barre di scorrimento: orizzontale e verticale, se la tabella è più grande dello
schermo.
• Navigare in una tabella: Tasti freccia, Tab/Invio, PageUp / PageDown.
• Cancellare un record:
- (1° modo) selezionare record -> tasto Canc/Del -> Yes.
(Per selezionare un record basta portare il puntatore del mouse sul pulsante alla sinistra del record
sino a che esso non assume l’aspetto di una piccola freccia nera che punta v erso destra)
(Un record cancellato in Access97 non può essere più recuperato (il comando Annulla non ha alcun
effetto), allo stesso modo come l’aggiunta di un nuovo record è salvato immediatamente, infatti in
Access viene richiesto il salvataggio solo se si va a modificare il layout, struttura della tabella)
- (2° modo) selezionare record -> menù Modifica -> Elimina.
Da notare che si possono cancellare anche più record contemporaneamente ma purché siano
consecutivi, non funziona quindi in Acces97 la selezione / deselezione dei record con il tasto CTRL
• Aggiungere un nuovo record:
- Menù inserisci -> nuovo record oppure dalla barra di navigazione cliccando con il mouse su
- Menù Record -> Immissione Dati -> Chiudi -> Riaprire la tabella e voilà compare il nuovo
record in coda a quelli già esistenti.
.
• Trovare i dati nei record:
- selezionare le colonne in cui cercare -> Menù Modifica -> Trova.
• Ordinamento dei record:
- selezionare la colonna ->
e
. Da notare che in una tabella è possibile ordinare un solo
campo alla volata. Per ordinate più campi insieme bisogna usare le query.
• Aggiungere un campo ad una tabella tra altri campi già definiti nella tabella:
- Aggiungere un campo ad una tabella significa modificarne la struttura allora bisogna aprire la
tabella in visualizzazione struttura.
- Come es. aggiungiamo alla tabella Dipendenti creata il campo e-mail.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
14
Fondamenti di Access97-2000
- Specifichiamo per esso il collegamento ipertestuale.
- Specifichiamo nella proprietà descrizione: casella di posta elettronica del dipendente.
- Chiudere la tabella -> Salvare le modifiche alla nuova struttura.
• Modificare i dati in un record di una tabella:
- Aprire la tabella in modo foglio dati -> spostandosi tra i record con i tasti freccia, Tab/Invio e le
barre di scorrimento, selezionare il campo che si vuole modificare -> modificarlo.
- Esempi di modifica:
1) Non è possibile modificare il valore di un campo contatore, infatti è il programma Access97
che lo genera all’atto della creazione di un record. Se infatti si prova a modificarlo Access97
interviene con un messaggio di errore.
2) La modifica del valore binario di un campo di tipo SI/NO viene eseguita con un click del
mouse o con la barra della tastiera.
3) La modifica o inserimento di un valore bitmap (immagine) in un campo di tipo oggetto OLE
avviene nel seguente modo: aprire la foto con Paint (se non ne abbiamo una basta creare un
ritaglio bitmap (ad es. la faccina di un omino con un cerchio grande per la testa e due cerchi
piccoli per gli occhi e così via)) -> tagliarla con il pulsante
-> tasto destro del mouse ->
taglia -> andare in modalità foglio dati della tabella ed incollare l’immagine nel campo foto.
• Cancellare una tabella
Basta selezionarla e poi cancellarla con il tasto Canc / Del. Volendola recuperare basta eseguire il
comando Ctrl+Z. Comunque conviene sempre eseguirne una copia di back-up anche in un altro
punto del disco e quindi non necessariamente nel nostro database creato, prima di cancellarla.
• Operazioni sulle colonne e sulle righe di una tabella in modalità foglio dati:
(Da notare che ogni qual volta si effettua una delle seguenti operazioni stiamo modificando
l’attuale layout della tabella e quindi alla chiusura della tabella ci verrà sempre chiesto se
salvare il nuovo layout o meno).
1. Larghezza colonne: selezionata la colonna.
- Menù Formato -> Larghezza colonna -> Cliccare con il mouse sulla colonna.
- Tasto destro del mouse -> larghezza colonna.
2. Altezza righe: selezionata la riga -> Menù Formato -> Altezza riga
- Cliccare con il mouse sulla riga sino a che diventi una croce e poi modificarla.
- Tasto destro del mouse -> riga colonna
3. Nascondi colonna e scopri colonna:
Per compattare le colonne della tabella corrente che non ci servono per il momento si
possono nascondere temporaneamente e successivamente quando riserveranno si possono
riscoprire. Come? Selezionata la colonna: -> Menù Formato o tasto destro del mouse ->
Nascondi Colonna -> Menù Formato o tasto destro del mouse -> Scopri colonna.
4.
Spostare la posizione di una colonna in una tabella (solo in Access 2000)
Tale possibilità serve se l’utente ha il bisogno di vedere disposte le colonne in un ordine
diverso da quella naturale dei campi del record. Tale operazione può essere effettuata con
il mouse con la tecnica del drag and drop ed è possibile solo in Access 2000.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
15
Fondamenti di Access97-2000
• Modificare le proprietà dei campi di una tabella
Un gruppo di proprietà comuni per i tipi di campi più diffusi sono:
1. Formato; 2. Maschera di Input; 3. Etichetta; 4. Valore Predefinito; 5.Valido se;
6. Messaggio di errore; 7. Richiesto
Formato
Il formato di un campo è il modo con il quale viene mostrato il dato in esso contenuto.
Ad es. un tipo numerico o un tipo contatore può essere visualizzato con un numero fisso di
decimali, con il segno di percentuale oppure con il segno di valuta accanto, se è un importo in
denaro. Tale proprietà formato l’abbiamo vista già in precedenza per il tipo data/ora, ma si può
definire anche per altri tipi.
Altro es. nella nostra tabella Dipendenti andiamo a modificare il formato del campo Sposato: ci
sono tre opzioni di formato: Si/No, Vero/Falso e On./Off.
Maschera di Input
La maschera di input di un campo permette di definire il modo con cui un dato viene messo nel
campo e serve a guidare l’utente a non commettere errori di inserimento. Essa può essere usata solo
per i tipi Testo e Data. Ad es. nella nostra tabella Dipendenti abbiamo vari campi di tipo testo: il
campo provincia, il campo CAP oppure il campo DataNascita che è di tipo data. Allora che si fa?
Inseriamo una maschera di input per il campo provincia. Come? Ci sono due strade percorribili per
giungere alla visualizzazione di una stessa finestra:
1. Selezioniamo il campo provincia -> scheda generale -> proprietà formato -> cliccare sulla cella
finche non compaiono tre puntini -> cliccando su di essi -> (se è installato l’autocomposizione
maschera) compare la seguente finestra:
2. Premere il pulsante genera sulla barra degli strumenti
che genera la seguente finestra:
A questo punto basta cliccare su Prova -> Avanti -> Compare un’altra finestra di dialogo. In essa
alla voce Carattere segnaposto è possibile stabilire il carattere segnaposto (ad es. @, #, _, ecc. )
nella tabella in visualizzazione foglio dati che avrà il campo prima dell’inserimento della provincia.
Inserita la maschera di input per il campo provincia andiamo a provarla aprendo la tabella
Dipendenti in modalità foglio dati.
Esercizio:
Creare una maschera di input anche per i campi Cap e DataNascita.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
16
Fondamenti di Access97-2000
Etichetta
Essa serve per creare una alternativa al nome del campo. Per crearla basta inserire la sua descrizione
direttamente nella casella a fianco della proprietà etichetta nella scheda generale.
Valore Predefinito
Cliccando sulla destra di tale proprietà si apre la seguente finestra:
che da la possibilità di:
- creare un valore predefinito che dovrà assumere il campo: una costante, ecc.
- generare automaticamente la data corrente, mediante la funzione interna al sistema date (), se tale
valore predefinito è ad esempio un tipo data. Infatti è noto che la cosa più noiosa è inserire in un
campo una data dovendo fare attenzione ogni volta a inserire correttamente il gg, il mm e l’anno.
Messaggio di Errore e Valido se
- Il messaggio di errore è il testo scritto da noi che vogliamo compaia nel caso ci sia un errore
nell’immissione dei dati nel campo. Per scriverlo basta digitarne il testo nella casella a fianco della
proprietà messaggio errore della scheda generale.
- Valido se è una regola di validazione di un campo, quindi è un’espressione che aiuta a controllare
il corretto inserimento di dati in un campo. Per esempio si potrebbe stabilire che l’età di un dipende
superi i 18 anni per essere assunto in azienda. Altro esempio è quello del CAP, in cui è opportuno
costringere l’utente a inserire obbligatoriamente cinque numeri interi e non anche caratteri.
Le regole che Access97 prevede per convalidare i dati sono:
- i valori delle stringhe delle regole di convalida devono essere racchiuse tra doppi apici (“)
- gli operatori sono: <, >, =, AND, OR, NOT.
- l’operatore LIKE. Tale operatore ammette l’uso d i caratteri jolly: ? (per identificare un singolo
carattere), # (per identificare una singola cifra), * (per identificare un qualsiasi numero di caratteri)
- l’operatore BETWEEN per definire valori compresi in un certo intervallo.
- NULL per campi che possono essere lasciati vuoti.
Tali regole sono reperibili cliccando sul pulsante
finestra di dialogo detta generatore di espressioni.
della barra degli strumenti che richiama una
Esempi:
- LIKE “S*” per definire un campo in modo che contenga solo nomi di lunghezza potenzialmente
infinita la cui lettera iniziale sia per esempio “S”
- LIKE “S???” per definire nomi che iniziano per “S” e che siano costituiti da solo tre caratteri.
- BETWEEN 10 AND 20 per definire un campo che ammette solo valori compresi tra 10 e 20.
- >10 per campi i cui valori ammettono valori superiori a 10.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
17
Fondamenti di Access97-2000
- = 10 o <> 10 per campi i cui valori sia o solo =10 oppure solo diversi da 10.
- IMP (“Milano”, “Parigi”): Il campo ammette solo l’immissione dei valo ri Milano e Parigi.
- “Milano” OR “Torino” :Limita l’immissione del campo alle due città indicate e racchiuse fra
doppi apici (“ “)
Esercizio: Le proprietà Messaggio di errore e Valido se, possono essere usate insieme.
Nella nostra Tabella Dipendenti in visualizzazione struttura selezionato il campo CAP:
- nella proprietà Messaggio di errore scriviamo il messaggio “Il CAP vuole solo Numeri!!”
- nella proprietà Valido se scriviamo like “####” direttamente o con il generatore di espressioni.
Proviamo gli effetti di ciò aprendo la tabella Dipendenti in modalità foglio dati.
MASCHERE
Una maschera è una interfaccia grafica progettata e realizzata per avere a video i dati di uno o più
record. Essa è utile oltre che per motivi grafici anche per motivi di riservatezza: stabilendo i campi
da visualizzare e quelli da escludere (da mascherare).
Aprire una Maschera
Per aprire una maschera bisogna selezionare la scheda o oggetto maschera nella finestra di dialogo
vista all’inizio:
Come mostra la figura possiamo scegliere, tralasciando le ultime due, tra cinque opzioni: struttura,
autocomposizione, a colonne, tabellare, foglio dati e giustificato.
La maschera è la interfaccia di una tabella (o eventualmente di più tabelle o query).
Nella creazione guidata di una maschera possiamo decidere:
- se tutti i campi o meno della tabella associata devono appartenere alla maschera o se aggiungere
alla maschera anche eventualmente campi definiti in altre tabelle o query del nostro database.
- lo stile o e lo sfondo che dovrà avere la maschera.
Caratteristiche creazione maschera in modalità guidata.
A colonne: I campi della tabella sono disposti uno sopra l’altro in tante colonne affiancate.
Tabellare: I campi sono mostrati come in una tabella uno per ogni colonna.
Foglio dati: Crea una maschera identica a quella della tabella in modalità foglio dati.
Giustificato: Tale opzione in Access97 si trova all’interno della voce Autocomposizione Maschera,
nel senso che per selezionarla bisogna:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
18
Fondamenti di Access97-2000
selezionare la voce Autocomposizione Maschera -> scegliere la tabella a cui essa si dovrà applicare
(ad es. la tabella Dipendenti) -> Ok -> selezionare tutti i campi o solo alcuni campi della tabella ad
essa associata o anche se volessimo anche alcuni campi delle altre tabelle del nostro database ->
avanti -> finché compare la finestra di dialogo:
Anteprima
maschera di
tipo giustificato
dove andiamo a selezionare finalmente il tipo giustificato.
Nel tipo giustificato come mostra la sua anteprima i campi selezionati sono disposti l’uno dietro
l’altro e raggiunto il bordo della maschera continuano sulla riga successiva apparendo giustificati
come un testo su entrambi i lati della pagina.
(Da notare che in Access 97 anche gli altri tipi guidati delle maschere: a colonne, tabulare e foglio
dati si possono creare seguendo il percorso lungo elencato per il tipo giustificato, ma essi si creano
più semplicemente selezionando il tipo di maschera subito nella finestra di dialogo che compare
all’inizio )
Visualizzazione struttura:
Permette di creare una maschera da zero a secondo delle nostre esigenze.
La maschera
Dipendenti si
poggia sulla
omonima tabella
Esercizio:
Come mostra la figura sopra noi andremo a costruire una maschera in modo struttura per la tabella
Dipendenti. Per questo motivo dobbiamo selezionare nel menù a discesa la suddetta tabella.
Aperto la maschera in modalità struttura osservare che:
In pratica si tratta di disegnare il layout della maschera, scegliendo gli oggetti da inserire in una
zona piana rettangolare grigliata da una casella strumenti ( Menù Visualizza -> Barra degli
Strumenti -> Casella degli strumenti)
Tale pulsante
permette di accedere
a tanti altri oggetti.
Etichetta Casella di testo
Pulsante di
Comando
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
SottoMaschera / SottoReport
19
Fondamenti di Access97-2000
Inserimento oggetto (drag and drop)
Si seleziona l’oggetto dalla casella degli strumenti e lo si trascina nella zona grigliata, tene ndo
premuto il tasto sinistro del mouse. Lasciando il tasto sinistro del mouse, l’oggetto apparirà nella
zona grigliata.
Noi useremo in particolare cinque oggetti: l’etichetta, la casella di testo, la
sottomaschera /sottoreport, il pulsante di comando e il pulsante immagine.
Vediamoli in dettaglio:
- l’etichetta, si usa per identificare i campi, ma si possono usare anche per aggiungere titoli e sottotitoli
ad una maschera, o per aggiungere ulteriori istruzioni.
- la casella di testo (test box in VB) serve per inserire nella maschera i campi delle tabelle o query
che si vogliono usare.
Mano destra con
l’indice aperto ove
sta il quadrato
E’ uno degli 8 punti
Tali oggetti generano oltre allo spazio (vedi non associato) per contenere il valore del campo anche
una etichetta (vedi Testo0) usata per contenere il nome del campo.
- la sottomaschera / sottoreport spiegati più avanti.
- i pulsanti di comando (per la maschera di avvio) e di immagine (per i report) spiegati più avanti.
Per allineare nella griglia gli oggetti inseriti notare le tre facce del mouse:
Per allineare gli oggetti inseriti nella griglia Access97 visualizza intorno a tutti gli oggetti una
griglia di 8 punti. Muovendosi con il mouse vicino a questi punti esso può assumere tre facce
diverse, oltre a quella solita di freccia bianca.
- manina dx aperta con l’indice, se ci spostiamo sugli unici due punti a forma di rettangolo
.
Essa permette di spostare nella griglia solo o la casella di testo o l’etichetta ad essa associata.
- manina dx aperta se ci spostiamo su tutti gli altri punti non a forma di rettangolo. Essa permette
di spostare tutta assieme la casella di testo e l’etichetta ad essa associata nel piano griglia.
se vogliamo allargare o restringere la casella di testo o lo spazio riservata all’etichetta.
Il tasto destro del mouse
Selezionato l’oggetto nella griglia -> tasto destro del mouse -> compare una finestra di dialogo da
cui è possibile sostanzialmente:
- formattare la dimensione dell’oggetto selezionato,
- il colore di sfondo e il colore del carattere.
- Selezionare la voce proprietà che lancia a video un’altra finestra di dialogo che riassume in
cinque schede tutte le proprietà associate all’oggetto selezionato. La finestra Proprietà è
selezionabile anche cliccando due volte sull’oggetto selezionato. Tali schede sono:
1) Formato:
a) visibile (Si/No Il campo può essere o meno visibile in visualizzazione maschera).
b) Larghezza e altezza permettono di stabilire la larghezza e l’altezza della textbox.
c) Stile e colore sfondo.
d) Aspetto della casella di testo: incassato, in rilievo, ombreggiato, ecc..
e) Stile, colore e spessore bordo.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
20
Fondamenti di Access97-2000
f) Dimensione carattere.
g) Spessore carattere: grassetto, corsivo, semigrassetto, ecc.
h) Allineamento testo. A sinistra, a destra, centrato, standard.
2) Dati. E’ usata per associare alle caselle di t esto i nomi dei campi (usata in basso)
3) Evento. E’ usata per generare eventi in Visual Basic.
4) Altro. Lo spiegheremo in seguito.
5) Tutte. Riassume tutte le proprietà delle prime quattro schede.
Vedi associazione
casella di testo ad
un campo
Cinque schede
Nel nostro caso della creazione maschera in modalità struttura per la tabella Dipendenti compaiono
le proprietà che abbiamo già definito e che possiamo o dobbiamo ancora definire per l’oggetto
casella di testo.
Associazione della casella di testo ad un campo della tabella Dipendenti selezionata
Inseriti gli oggetti, della casella strumenti, nella griglia struttura della maschera, l’importante è
metterli in relazione ai campi della nostra tabella Dipendenti. Come? Vediamolo.
1. Campo Cod_Personale
- Selezionare la scheda Dati -> Voce Origine di Controllo -> cliccare sulla freccia
->
compariranno tutti i nomi dei campi che abbiamo definito nel layout della tabella Dipendenti ->
scegliamo la voce Cod_Personale.
- Poi clicchiamo due volte sull’etichetta associata alla casella di testo Cod_Personale e
modifichiamo il nome dell’etichetta da testo0 a Cod_Personale -> infine andiamo su
per
vedere cosa abbiamo prodotto.
Osservazione:
Notato in visualizzazione maschera che lo spazio riservato all’etichett a del codice personale è largo
-> si può formattarlo più stretto in modo che contenga esattamente il valore del codice fatto in
genere da tre numeri.
2. Campo Cognome
- Inserito un nuovo oggetto
casella di testo nella griglia -> selezionata la casella di testo
definita per default “non associato” -> tasto destro mouse -> proprietà -> Scheda Dati -> Origine
Controllo -> Campo Cognome -> infine modifichiamo il nome dell’etichetta in Cognome -> infine
andiamo su
per vedere cosa abbiamo prodotto.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
21
Fondamenti di Access97-2000
Da notare che la Scheda Dati, su definita, oltre ad essere usata per associare, mettere in relazione gli
oggetti della casella strumenti con i campi di una tabella o query, presenta anche altre voci
interessanti come: maschera di input (già vista nella modalità struttura di una tabella) che permette
per i tipi data/ora e testo di generare una maschera di input (questo perché usare la maschera per
inserire i dati è un metodo alternativo all’utilizzo scarno della tabella stessa).
Esercizio:
Creare con il metodo spiegato tutte le caselle di testo necessarie a contenere tutti i campi della
tabella Dipendenti, tranne uno (quest’ultimo sarà creato con un altro metodo che descrivo sotto).
Aggiunta di un campo alla griglia della maschera Dipendenti
Andare nel Menù Visualizza o sulla barra degli strumenti -> elenco dei campi
-> compare una
finestra a discesa con tutti i campi relativi alla tabella Dipedenti su cui si appoggia la maschera.
Compare la finestra:
Quello che bisogna fare è semplicemente selezionare con il mouse il campo ( o i campi con MAISC
+ freccia in alto) che vogliamo inserire nella maschera in modalità struttura e trascinarlo nella
griglia tenendo premuto il tasto sinistro del mouse.
Quando si rilascia il pulsante del mouse, Access97 crea sia un’etichetta che una casella di testo per
quel campo. Occorre cambiare l’etichetta in qualcosa che descriva il campo e se necessario
si può cambiare la dimensione sia dell’etichetta che della casella di testo.
Esercizio:
Creare le maschere in modalità struttura anche delle tabelle Attività, Contratti e Dip_Attività
e OreLavorative.
Esercizio: Inserire, modificare e cancellare record tramite le maschere.
- Per inserire un nuovo record basta fare click sul pulsante Nuovo Record
in modo che la
maschera visualizzi tutti i campi vuoti da riempire appunto. Attenzione se il campo definito nella
tabella di appoggio è di tipo data non possiamo inserire in esso nella maschera un valore di tipo
testo e questo tipo di errore ci verrebbe segnalato da Access97.
- Per modificare il valore di un campo o tutti i valori di un intero record di una maschera basta
posizionarsi con il mouse su ognuno e modificarne il valore.
- Navigare tra i campi usare come per le tabelle i tasti Invio/Tab o i tasti freccia.
- Per eliminare un record ad es. il record numero 3, scrivere tale numero nella barra di navigazione
-> digitare Invio -> Menù Modifica -> Eliminare Record .
Una maschera ( e come vedremo anche un report) possiede:
1) un corpo: è l’insieme dei campi che costituiscono la zona centrale della maschera.
2) una intestazione e un piè di pagina Maschera:
- esse restano uguali in tutti i record, pertanto sono in genere rispettivamente riservate per
contenere ad es. il nome o il logo di una azienda e ad es. l’indirizzo postale (via dei Tigli, 14)
o l’indirizzo di posta elettronica ( [email protected]) o il telefono dell’azienda.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
22
Fondamenti di Access97-2000
- sono visualizzati quando si visualizza la maschera e quando la maschera si stampa
compaiono solo all’inizio della 1° pagina e alla fine dell’ultima pagina.
- si visualizzano nella struttura della maschera cliccando su Menù Visualizza ->
3) una intestazione e un piè di pagina per ogni pagina della maschera:
- esse servono a contenere dati che rimangono indipendenti dai dati o valori inseriti nei campi
del corpo (ad es. un’intestazione pagina Pagina potrebbe essere “ Dati Anagrafici Dipendenti”
se stiamo costruendo la maschera associata alla tabella Dipendenti).
- esse compaiono solo nella stampa della maschera.
- si visualizzano nella struttura della maschera cliccando su Menù Visualizza ->
Creazione guidata di una sottomaschera all’interno di una maschera.
In genere una sottomaschera viene utilizzata per visualizzare i dati delle tabelle collegate da una
relazione 1: N. La maschera principale riporta il record dal lato ”uno” della relazione 1:N mentre la
sottomaschera (di solito posizionata nella parte inferiore della maschera) visualizza i record dal lato
“molti” della relazione 1:N. Quindi la sottomaschera è una maschera dipendente da quella
principale.
Esercizio:
Nel nostro database relazionale Azienda sappiamo che c’è una relazione 1:N tra le tabelle
Dipendenti e Contratti ove Contratti è il lato 1 (allora la maschera principale sarà associata ad essa)
e Dipendenti il lato molti (allora la sottomaschera sarà associata ad essa).
Quindi aggiungeremo alla maschera Contratti, la sottomaschera Dipendenti. Come?
- Apriamo la maschera Contratti (precedentemente creata) in modalità struttura.
- Selezioniamo l’oggetto sottomaschere / sottoreport
nella casella degli strumenti e trasciniamolo
nella griglia -> compare la auto composizione guidata cioè la finestra di dialogo di fig. 1 seguente:
(fig. 1)
(fig. 2)
- Cliccare su Avanti, senza selezionare la finestra a discesa, dopodiché compare la finestra
precedente fig. 2.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
23
Fondamenti di Access97-2000
Dovendo creare come sottomaschera quella associata alla tabella Dipendenti, selezioniamo dal
menù a discesa la tabella Dipendenti -> poi tasto
per inserire nella sottomaschera ad esempio
nel nostro caso solo i campi: Nome&Cognome, DataNascita, Qualifica, Indirizzo, Città, CAP,
Provincia, Telefono.
Infine aggiungiamo ai campi selezionati il campo chiave esterna necessario Cod_Contratto. Poi
selezionato avanti compare la finestra in basso dove bisogna selezionare la voce Definizione
Personalizzata e successivamente i due campi della maschera e della sottomaschera che
permettono di realizzare il collegamento tra esse:
Selezionare il
campo chiave
esterna della
tabella Dipendenti
Selezionare il campo
chiave della tabella
Contratti
(N.B. Questa è una fase importante della creazione guidata perché i due campi codici del contratto
della maschera e sottomaschera sono quelli che fanno comunicare le due maschere)
Fatto le dovute selezioni -> la suddetta finestra di dialogo si modifica così:
Tale msg dice come è
collegata la sottomaschera
Cliccato ancora su avanti -> scelto il nome da assegnare alla sottomaschera -> fine.
N.B. La sottomaschera creata (in tal caso la sottomaschera Dipendenti) si insedia all’interno della
maschera principale (sotto forma di collegamento) (in tal caso la maschera Contratti) ma viene
copiata all’interno della scheda maschere di Access.
Pertanto dovrà essere lì conservata affinché il suo collegamento all’interno della maschera
principale possa continuare a funzionare.
Il risultato finale è il seguente:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
24
Fondamenti di Access97-2000
Maschera Tabella Contratti
Sottomaschera
Tabella Dipendenti
Barra di navigazione della
tabella Dipendenti
Barra di navigazione della
tabella Contratti
Osservazioni:
1) Quello che accade è che spostandosi al prossimo record (digitando il tasto della barra di
navigazione della maschera Contratti), automaticamente la sottomaschera legata alla tabella
Dipendenti va a selezionare tutti i record (1 o più, essendo essa nel lato 1 : molti) associati all'unico
record selezionato nella maschera Contratti.
2) I due campi corrispondenti nelle due tabelle (chiave esterna e chiave primaria devono contenere
valori appartenenti allo stesso dominio, altrimenti la maschera e la sottomaschera associata non si
correlano. Esempio: se il campo Codice_Contr. della Tabella Contratti contiene solo i valori 1, 2, 3
e 4 anche il campo chiave esterna Cod_Contratti della tabella Dipendenti deve contenere gli stessi
valori: 1, 2, 3 e 4 eventualmente duplicati.
3) Dalla visualizzazione maschera noi possiamo modificare sia i valori della maschera Contratti sia
i valori della sottomaschera Dipendenti.
4) Un valore modificato nella maschera o nella sottomaschera automaticamente viene modificato
anche nella tabella che essa rappresenta.
Esercizio:
Al nostro Database relazionale Azienda creiamo una nuova tabella OreLavorative avente i seguenti
campi:
- cod_ore (numerico e primary key)
- data (data dell’eventuale straordinario) (tipo data/ora)
- numeroh (numerico)
- cod_dip (chiave esterna associata alla chiave primaria Cod_Pers della tabella Dipendenti)
Riempitala con alcuni valori, creiamo poi la relazione 1:N tra le tabelle Dipendenti e OreLavorative.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
25
Fondamenti di Access97-2000
Ma se tra le tabelle OreLavorative e Dipendenti c’è una relazione 1:N allora alla maschera
Dipendenti possiamo associare la sottomaschera OreLavorative allora facciamolo.
Creazione di pulsanti di comando
nella maschera Contratti con Sottomaschera Dipendenti
Nel nostro Database Azienda aperta la maschera denominata “Maschera Contratti con SottoMask
Dipendenti & Intestazioni” dalla casella degli strumenti andiamo a creare quattro pulsanti di
comando: un pulsante che apre un foglio blocco note, un pulsante che stampa la maschera, un
pulsante che chiude la maschera corrente Contratti e infine un pulsante che apre la maschera
Dipendenti con sottomaschera OreLavorative appena creata.
Poiché tali pulsanti si creano in modo guidato, basta spiegare solo come si ne crea uno: ad es.
creazione del pulsante di stampa maschera.
Aperta la maschera contratti in modalità struttura e trascinato con la tecnica del drag and drop il
pulsante di comando
nella griglia struttura della maschera Contratti si apre la seguente finestra:
La finestra precedente presenta due caselle di testo: Categorie e Azioni. La casella Categorie
elenca tutte gli insiemi di operazioni che si possono far eseguire ad un pulsante di comando e nella
casella Azioni sono le corrispondenti azioni possibili.
Noi sceglieremo la Categoria Operazioni su Maschere e la azione Stampa Maschera ->Avanti ->
altra finestra di dialogo seguente:
In tale finestra dobbiamo selezionare la maschera a cui assegnare il pulsante di comando in
costruzione -> noi sceglieremo Maschera Contratti…-> avanti -> altra finestra di dialogo:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
26
Fondamenti di Access97-2000
In tale finestra è possibile scegliere se aggiungere o meno al pulsante una icona o immagine che
rappresenti l’operazione da esso eseguita.
(Tale icona la si può anche cercare nel nostro computer cliccando sul tasto sfoglia). Infine
clicchiamo su avanti e poi su fine.
Esercizio: Con i pulsanti di comando creare una maschera di avvio del database Azienda.
Dalla finestra di dialogo contenente gli oggetti del nostro database Azienda, selezionare la scheda
Maschere e poi il pulsante nuovo ◊ compare la seguente finestra di dialogo:
In questa finestra selezionare la modalità visualizzazione struttura -> non selezionare nessuna
tabella di appoggio della maschera (noi vogliamo creare una maschera costituita solo da bottoni e
quindi non vogliamo inserire nella maschera campi di tabelle) -> Ok -> nella griglia struttura
trascinare i pulsanti di comando da creare.
Pulsanti di comando potrebbero essere: un pulsante per le due sottomaschere create, un pulsante per
stampare la maschera di avvio, un pulsante di chiusura applicazione Access e cosi via…
Quindi la maschera di avvio potrebbe essere:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
27
Fondamenti di Access97-2000
Salvata tale maschera ad es. con il nome maschera avvio azienda, inoltre si può fare in modo che
tale maschera di avvio possa essere aperta al primo avvio del nostro database azienda.
Per tale scopo basta andare sul menù strumenti -> avvio -> compare la finestra seguente:
In tale finestra occorre selezionare la maschera di avvio azienda creata. Inoltre si può scegliere
anche di dare o meno l’opportunità all’utente di vedere o meno gli altri oggetti creati nel database.
Calcoli con le Maschere
In modalità struttura -> creata la casella di testo che dovrà contenere il calcolo -> tasto destro
mouse -> proprietà -> scheda Dati -> origine controllo -> cliccare sul pulsante con i tre puntini
Che richiama la seguente finestra generatore di espressione nella quale è possibile fare calcoli:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
28
Fondamenti di Access97-2000
Premessa query
Una delle funzioni più potenti di ACCESS è proprio quella delle query (letteralmente query
significa in italiano domanda), ossia di procedure di interrogazione del database per reperire
determinate informazioni. L’importanza di un database risiede nella buona parte nella facilità di
cercare, trovare e nel più breve tempo possibile le informazioni che occorrono a più utenti. La scelta
di un record rispetto ad un altro del database viene eseguita sulla base di precisi criteri.
Trovare Record: Opzione Trova e Filtri (in tabelle e nelle maschere)
Entrambe le opzioni trova e filtri si applicano alle tabelle e alle maschere in modalità foglio dati.
- Trova. Aperta la tabella, la query o la maschera in modalità foglio dati -> Selezionato il campo in
cui si desidera cercare ad es. il campo Cognome della nostra tabella Dipendenti -> Menù Modifica
-> Trova -> compare la seguente finestra di dialogo:
in cui è possibile cercare la parola richiesta in tutto il campo selezionato e anche in una parte di
esso, scegliendo opportunamente nella voce Confronta, una delle tre possibilità mostrate.
- Filtro. Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che
rispondono a un certo requisito, cioè solo le informazioni che hanno soddisfatto la condizione del
filtro. Ad es. nella nostra tabella Dipendenti, un requisito potrebbe essere solo le persone che hanno
la qualifica di Dirigente.
Esse a differenza delle query, che tra un po’ vedremo, sono effimere, cioè di breve durata, infatti
quando si chiude la tabella (o la maschera) in modalità foglio dati qualsiasi filtro si abbia definito
svanisce nel nulla, inoltre la condizione posta dai filtri può essere rimossa in ogni momento in modo
da rendere di nuovo disponibili tutti i record.
Vi sono 4 tipi di filtri:
Essi si attivano cosi: Portato la tabella o la maschera in visualizzazione dati -> Menù record.
Noi vedremo solo due tipi di filtri: filtro in base a selezione e filtro in base a maschera.
. E’ così chiamato perché in una tabella o maschera in
- Filtro in base a selezione
visualizzazione foglio dati, selezionato una cella del record, ad es. selezionata la cella Dirigente
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
29
(che è in questo caso il dato da evidenziare) del campo Qualifica della tabella Dipendenti, tale
filtro restituisce tutti i record che hanno il valore Dirigente nel campo Qualifica. Applicato tale
selezionato. La sua deselezione disattiva
filtro nella barra degli strumenti appare l’icona filtro
il filtro in base a selezione appena creato.
. Tale filtro apre una maschera vuota, cioè una maschera con
- Filtro in base a maschera
campi vuoti. In tali campi vuoti noi andremo a digitare i valori che i record filtrati dovranno
contenere. Tali valori per ogni campo si possono scegliere tra quelli già definiti per quel campo
(tramite una finestra a discesa). Applicato tale filtro nella barra degli strumenti appare l’icona
selezionato. La sua deselezione disattiva il filtro in base a maschera appena creato.
filtro
. Selezionando il filtro in base a maschera, sono generate (in basso a sinistra) due schede
denominate: Cerca e Oppur. La scheda selezionata per default e quindi usata più spesso è la
scheda Cerca. Quindi a cosa serve la scheda Oppur? Essa permette di immettere condizioni
aggiuntive alternative che i record possono avere. Il filtro restituisce tutti i record che soddisfano
i valori specificati da almeno una delle due condizioni specificate nelle schede Cerca e Oppur.
Esempio: Nel database Azienda -> aperta la tabella dipendenti in modalità dati -> Menù record > Filtro -> Filtro in base a maschera -> selezionare nel campo qualifica della scheda Cerca il
valore Dirigente e nella scheda Oppur nel campo Città il valore Madrid -> pulsante . Ebbene
queste due condizioni filtrano ovvero selezionano nella tabella Dipendenti tutti i record seguenti:
cioè tutti i record che hanno nel campo qualifica e nel campo città uno dei due valori Dirigente o
Madrid oppure entrambi i valori Dirigente e Madrid.
N.B. Filtri nelle Query
I filtri si possono usare anche nelle query se queste sono visualizzate nella modalità foglio dati.
Query
Domanda: Da una tabella quante query si possono creare? Tante, ognuna con il proprio obiettivo.
Inoltre è possibile creare una query da un’altra query già creata.
I tipi di query disponibili in Access97 sono:
- Query di selezione o query semplice.
- Autocomposizione Query a campi incrociati.
- Autocomposizione ricerca duplicati.
- Autocomposizione ricerca dati non corrispondenti.
- Query di comando: di creaz. tabella, di aggiornamento, di accomodamento, di eliminazione.
- Query SQL: di unione, di definiz. dati, di raggruppamento, di tipo pass-through e sottoquery.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
30
Fondamenti di Access97-2000
Nel modulo 5 della patente europea ci sono solo le creazione query di selezione e utilizzando la
procedura guidata allora noi parleremo nel dettaglio solo di esse. Chi però volesse imparare ad usare
altri tipi di query vada sulla autocomposizione delle altre query guidate.
La procedura guidata è comoda perché permette di strutturare la query in modo veloce. Essa poi
potrà essere personalizzata in seguito visualizzandola in modalità struttura.
Una query di selezione o query semplice è il tipo più comune di query. Tale query recupera,
seleziona i dati provenienti da una o più tabelle e visualizza i risultati in un foglio di dati.
Una query di selezione consente inoltre di raggruppare dei record e calcolare somme, medie,
conteggi ed altri tipi di totali e di calcolare il minimo e il massimo contenuto in un campo.
Creazione guidata query di selezione o semplice
Nella finestra di dialogo seguente contenente gli oggetti di un database:
cliccare sul pulsante Nuovo -> Autocomposizione Query Semplice -> Ok -> compare la finestra di
dialogo seguente:
Selezionare la tabella o una
query già creata a cui sarà
associata la nuova query
Selezionare i campi su cui
dovrà agire la nostra query
Da tale finestra noi scegliamo i campi Nome, Cognome, DataNascita, Qualifica, Indirizzo, Città,
Sposato ed e-mail -> avanti -> definire il nome della query (sarà Q1- Query Dipendenti) -> poi fine.
Creata la query essa si presenta in modalità foglio dati ma poi se clicchiamo sul pulsante
modalità struttura che mostra la seguente finestra:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
si va in
31
Fondamenti di Access97-2000
Questa parte
visualizza le
tabelle da cui
sono stati
presi i campi
da inserire
nella query
Queste colonne
costituiscono il
recordset della
query
Calcoli in
una query
Criteri di
selezione dei
record
Analizziamo tale finestra un po’ nel dettaglio:
- Le voci Campo e Tabella fanno riferimento al nome del campo e alla tabella cui appartiene.
- La voce formula permette di effettuare calcoli predefiniti di Access97 che consentono di
effettuare, per gruppi di record o per tutti i record combinati nella query, le operazioni seguenti:
somma, media, conteggio, minimo, massimo, deviazione standard o varianza. Tale voce si attiva
nella griglia struttura così: menù Query ->
.
- La voce Ordinamento permette di disporre i valori di un solo campo in modo: crescente,
decrescente o non ordinato; perché di un solo campo? Perché se i record sono ordinati ad es. in
modo crescente di nomi non sono necessariamente ordinabili secondo un altro campo.
- La voce Mostra, se selezionata o meno rispettivamente visualizza o meno il campo nella query.
- Nelle voci Criteri e Oppure si possono inserire più criteri di selezione dei record della query,
combinandoli tra loro tramite gli operatori logici (<, <=,>,>=, AND, OR, NOT,) richiamabili dal
generatore di espressione
.
Da notare che a questa stessa finestra si giunge facilmente anche se si sceglie di creare la query in
modalità struttura. Basta infatti seguire i seguenti passi:
Dalla scheda Query -> pulsante
-> Visualizzazione Struttura -> Ok -> Compare la
finestra di dialogo Mostra Tabella seguente:
Da tale finestra bisogna scegliere la tabella (nella scheda tabelle) o la query (nella scheda query) da
mostrare in video da cui poi saranno prelevati (con il mouse con la tecnica del drag and drop) i
campi da utilizzare nella creazione struttura della query.
Noi aggiungeremo dalla scheda Tabelle la tabella Dipendenti (cosi compare la finestra
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
)
32
Fondamenti di Access97-2000
Aggiungere criteri alle query di selezione in visualizzazione struttura
La query creata (definita nel database allegato Q1-Query-Dipendenti) altro non fa che visualizzare
cioè reperire le informazioni solo dei campi che abbiamo deciso di inserire nella query ma su tali
informazioni non effettua nessun calcolo.
Esempi di criteri sono:
- “M” .Si può chiedere di disporre di tutti i record in cui un campo cognome inizi con la lettera M
- #20/03/2000# .Si può chiedere una data specifica, scrivendo una data in un campo di tipo Data.
- >18. Si può chiedere di cercare in un database Scuola tutti quelli che sono maggiorenni.
Da notare che la sintassi delle query prevede:
le virgolette “ all’inizio e alla fine per i campi di tipo alfanumerico per far capire al DBM S Access
che si tratta di caratteri; il cancelletto # all’inizio e alla fine per i campi di tipo data; Nulla per i
campi di tipo numerico in quanto essi non sono possibili di ambiguità.
Esercizio 1: esempio di criterio
(Tale query nel database azienda allegato è denominata Q2-Ordinamento Crescente Città da Q1)
A partire dalla query Q1appena creata, creiamo in modo struttura un’altra query denominata: Q2query dipendenti ordinamento crescente città da Q1 avente gli stessi campi della query Q1 ma
con l’aggiunta di un secondo tipo di criterio: l’ordinamento crescente o decrescente del campo città.
Dalla finestra iniziale, selezionata la scheda Query -> pulsante Nuovo -> Visualizzazione struttura
-> Ok -> dalla finestra Mostra tabella seguente:
selezionare la scheda Query -> Aggiungi -> comparirà a video la query Q1 precedentemente creata.
-> selezioniamo tutti i campi di questa query premendo contemporaneamente il tasto sinistro del
mouse e il tasto maiuscolo della tastiera in modo che compaia la figura seguente:
Poi con la tecnica del drag and drop li trasciniamo sulla struttura della nuova query che in un solo
colpo rimane definita di tutti i campi selezionati. Quello che compare è la figura preced. di pag. 32
In tale finestra selezioniamo con il mouse il campo città -> poi andiamo alla voce Ordinamento ->
alla finestra a discesa selezioniamo crescente -> e infine sul punto esclamativo
per mandare in
esecuzione la query.
Quello che si genera è l’elenco di tutti i record relativi ai campi presi in considerazione aventi il
campo città con valori ordinati in ordine crescente, come mostra la figura:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
33
Fondamenti di Access97-2000
Esercizio 2: esempio di criterio:
(Tale query nel database allegato è Q3-Criterio-SuCampoCittà (>= and <) dallaTabella-Dipendenti)
Aperta la query Q1-Seleziona Alcuni campi di Tab-Dipendenti creata precedentemente in modalità
struttura per aggiungere un criterio di selezione dei record sul campo Città, posizionatosi
con il mouse sulla voce criteri del campo Città scrivere esattamente la stringa:
>= [Città che iniziano da:] And < [Città fino a:] ->Cliccare sul punto esclamativo
per
mandare in esecuzione la query creata.
(P.S. A cosa serve l’operatore AND? Serve a richiedere ad Access97 di selezionare tutti i record i cui
cognomi hanno per lettera iniziale, tutte quelle comprese tra le due lettere (i due parametri) inseriti
dall’utente, all’atto dell’esecuzione della query di selezione).
Vediamo cosa succede. Cliccando sul pulsante esclamativo
compare la finestra:
e poi la finestra:
In queste due finestre inseriamo i due parametri richiesti dalla query e in base ad essi la query di
selezione su denominata Q3 interrogando il database Azienda da noi creato selezionerà per noi tutte
le città dei dipendenti la cui città ha la prima lettera compresa tra la A e la F (esclusa).
L’esecuzione della query infatti genera la seguente finestra:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
34
Fondamenti di Access97-2000
Sino alla
lettera E
Esercizio 3: esempio di criterio con calcolo personalizzato mediante un campo calcolato.
Un calcolo personalizzato consente di eseguire calcoli numerici, di date e di testo su ciascun record
utilizzando i dati di uno o più campi.
Con un calcolo personalizzato, ad esempio, è possibile moltiplicare i valori di un campo per un dato
numero, trovare la differenza tra due date memorizzate in campi separati, combinare più valori in
un campo testo oppure creare delle sottoquery.
In tal caso di calcoli personalizzati, è necessario creare un campo calcolato (cioè un campo
definito nella struttura della query che visualizza l’espressione da calcolare (vedi esercizio). Il
valore viene calcolato di nuovo ogni volta che viene modificato un valore nell’espressione)
Esercizio: Creare Query Importo Retribuzione
(Tale query nel database allegato è denominata Q4-CalcoloRetribuzioneLavoroOttenutaDalleTabelle
Contratti, Dipendendi e Ore Lavorative)
Supponendo che per ogni ora di lavoro effettuato in una certa data l’importo da retribuire sia di
10.000lire/h, creare una query che calcoli l’importo da retribuire a un dipendente dell’azienda, in
una certa data.
Soluzione concettuale
Basta moltiplicare 10.000 lire per il numero di ore di lavoro effettuato dal dipendente in una certa
data.
Soluzione da realizzare con Access.
Sarà definita una nuova query denominata Q4-CalcoloRetribuzioneLavoro Da Tabelle ContrDipend-OreLav che dovrà essere realizzata a partire dalle tre tabelle: Contratti, Dipendenti e
OreLavorative, selezionando da esse i campi seguenti: Nome&Cognome, StipendioBase, Data (del
giorno che ha lavorato) e Numeroh.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
35
Fondamenti di Access97-2000
Infine bisogna aggiungere nella struttura di tale query un nuovo campo (cosiddetto campo
calcolato) Importo Retribuzione come mostra la seguente figura:
L’importo retribuzione è
calcolato moltiplicando il
campo numeroh per la
costante 10.000lire fissato
Il risultato di tale query dovrà essere la figura seguente:
Conclusioni:
Da tale risultato si evince ad esempio che la dipendente Ana Trujillo effettuando in data 01/03/03
due ore di lavoro e in data 02/03/03 otto di lavoro, ha guadagnato in due giorni di lavoro solo
100.000 L.
Altre Query Guidate (non fanno parte del programma del modulo 5 della patente europea)
Aperto il database -> Cliccato sulla scheda Query -> poi sul pulsante Nuovo compare la
seguente finestra di dialogo:
Le procedure di autocomposizione assistono l’utente nella creazione delle query e il risultato finale
è identico a quello ottenuto creando la query manualmente. Un ottimo sistema per imparare ad
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
36
Fondamenti di Access97-2000
utilizzare le funzioni avanzate delle query è quello di utilizzare le procedure di autocomposizione e
poi osservare o intervenire sulla loro struttura dopo che sono state create.
Essa come si può notare prevede quattro tipi di autocomposizione di query:
- Autocomposizione Query semplice o di selezione, l’abbiamo già vista.
- Autocomposizione Query a campi incrociati. Una query a campi incrociati ha per scopo quello
di estrarre dati di tipo aggregato. Essa, infatti, estrae valori di riepilogo, come somme, conteggi e
medie, da un campo di una tabella e li raggruppa (raggruppare significa "mettere insieme" tutti i
dati, accomunati da qualche caratteristica, su cui vanno fatti alcuni tipi di conti) visualizzandoli in
un set di dati elencati sul lato sinistro del foglio di dati e in un altro set di dati elencato nella parte
superiore del foglio di dati. Il risultato è una tabella che presenta i dati estratti in forma più compatta
(per maggiori informazioni vedi guida in linea Access).
- Autocomposizione ricerca duplicati. Utilizzando l'Autocomposizione Query ricerca duplicati, è
possibile determinare se in una tabella siano presenti record duplicati oppure quali record di una
tabella condividano lo stesso valore.
Si potrebbe desiderare, ad esempio, di cercare valori duplicati in un campo di indirizzi per
determinare se esistono record duplicati per lo stesso fornitore oppure cercare valori duplicati in un
campo di città per vedere quali fornitori si trovano nella stessa città (per maggiori informazioni
vedi guida in linea Access).
- Autocomposizione ricerca dati non corrispondenti. Utilizzando l'Autocomposizione Query
ricerca dati non corrispondenti, è possibile trovare i record di una tabella che non hanno record
correlati in un'altra tabella.
Per esempio in una tabella si potrebbero memorizzare gli ordini e in un’altra tabella i dettagli
relativi al cliente. Se le tabelle verranno collegate tramite, diciamo, il campo Id_Cliente,
l’autocomposizione di ricerca dati non correlati indicherà se uno dei due cli enti elencati nella tabella
degli ordini non trova riscontro nell’elenco dei clienti della seconda tabella ( per maggiori
informazioni vedi guida in linea Access).
Query di comando: di creazione tabella, di accodamento, di eliminazione, di modifica.
Una query è un'interrogazione, vale a dire una richiesta di reperire dati in un DB, aggregati tra loro
per mezzo di criteri che possono essere stabiliti.
Tutto quanto visto finora è stato realizzato mediante interventi di questo tipo, che mostrano i dati
con diverse possibili aggregazioni, ma non ne modificano l'origine
.
Le tabelle d'origine delle informazioni non sono mai modificate, ma le query possono realizzare
anche interventi più invasivi.
In generale quando è necessario ricorrere a una query di comando per apportare una modifica ai dati
di un DB? Vediamo alcuni esempi:
- vanno cancellati dalla tabella degli studenti iscritti a una scuola tutti i nomi di coloro che hanno
frequentato il quinto anno e sono stati promossi.
- vanno accodati ai dati di una tabella esistente, o inseriti in una tabella nuova, tutti gli studenti
diplomati con valutazione superiore a 80/100.
- in seguito a una variazione della numerazione telefonica fissa, tutti i numeri con un dato prefisso
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
37
Fondamenti di Access97-2000
acquisiscono una cifra fissata (es. 8) all'inizio del numero.
E' possibile modificare i dati in modo sistematico attraverso query opportune, con le query di
comando, classificabili in query di:
Query di creazione tabella
Crea una tabella nuova, a partire da una esistente.
Ad esempio si vuole creare una nuova tabella che contenga l'elenco di tutti i dati degli studenti che
hanno una caratteristica comune, ad es. abitano a Crema.
Le query di creazione tabella sono utili per:
- Creare una tabella da esportare in altri database di Microsoft Access. È possibile, ad esempio,
creare una tabella che contiene diversi campi della tabella Impiegati, quindi esportarla in un
database utilizzato dall'ufficio del personale.
- Creare una copia di backup di una tabella.
- Creare una tabella cronologica che contiene i vecchi record. È possibile, ad esempio, creare una
tabella che memorizza tutti i vecchi ordini prima di eliminarli dalla tabella Ordini corrente.
Query di Accodamento
Preleva i dati da una o più tabelle o query e li inserisce in coda a una tabella esistente.
Si supponga, ad esempio, che vengano acquisiti nuovi clienti e un database contenente una tabella
di informazioni su di essi. Invece di digitare nuovamente tutte queste informazioni, si accodano alla
propria tabella Clienti.
Le query di accodamento sono inoltre utili per:
- Accodare campi in base a dei criteri. È possibile, ad esempio, accodare solo i nomi e gli indirizzi
di clienti con ordini di rilievo.
- Accodare record nel caso in cui alcuni campi di una tabella non esistano in un'altra tabella. Nel
database di esempio Northwind nella tabella Clienti ci sono 11 campi. Si supponga di voler
accodare record di un'altra tabella con campi corrispondenti a 9 degli 11 della tabella Clienti. Una
query di accodamento accoderà i dati nei campi corrispondenti e ignorerà gli altri.
Query di Eliminazione
Cancella informazioni da tabelle. Questo tipo di query elimina un gruppo di record da una o più
tabelle. È possibile utilizzare un'unica query di eliminazione per elimin
are dei record da una sola
tabella, da più tabelle in una relazione uno-a-uno o da più tabelle in una relazione uno-a-molti, se le
opzioni di eliminazione a catena sono attivate (vedi finestra relazioni)
Query di Modifica o Aggiornamento:
Questo tipo di query apporta modifiche globali a un gruppo di record in una o più tabelle. È
possibile, ad esempio, aumentare i prezzi del 10 per cento per tutti i prodotti caseari o aumentare gli
stipendi del 5 per cento per le persone appartenenti a una determinata categoria lavorativa.
Con una query di aggiornamento è possibile modificare dati in tabelle esistenti.
Query SQL
Un'istruzione SQL è una espressione che definisce un comando Sql come ad es. Insert, Update e
Delete (DML) e Select (QL) che include proposizioni quali Where e Order By.
Le istruzioni Sql vengono in genere usate nelle query e nelle funzioni di aggregazione (ad es.
somma (Sum), conteggio (Count), media (Avg), varianza (Var), ecc. ) e inoltre come origine record
per maschere, report, caselle di riepilogo e caselle combinate.
Le query precedenti elencate se vengono “scritte” in ACCESS sono, in maniera trasparente,
tradotte in linguaggio SQL. Le query che fanno eccezione a questa regole sono le seguenti.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
38
Fondamenti di Access97-2000
Query SQL di: unione, tipo pass-through, definizione dati , sottoquery e raggruppamento
Per realizzare, quindi, una query Sql è necessario come prerequisito la conoscenza del linguagg. Sql
Query di unione
Questo tipo di query combina in un solo campo i campi contenuti in due o più tabelle o query. Se,
ad esempio, ci sono sei fornitori che inviano ogni mese nuovi elenchi di inventario, è possibile
combinare questi elenchi in un solo set utilizzando una query di unione e basare poi una query di
creazione tabella su di questa per ottenere una nuova tabella. Si usa in Sql la clausola Union.
Query di tipo pass-through
Con questo tipo di query è possibile inviare comandi (per recuperare record o modificare dati)
direttamente ad un server di database ODBC (acronimo di Open DataBase Connectivity, è un
protocollo standard per l’accesso alle informazioni contenute sui server di database Sql) come
Microsoft Sql Server.
Query di definizione dati
Questo tipo di query creare, modificare o eliminare una tabella oppure per creare indici (funzione che
velocizza la ricerca e l'ordinamento di una tabella). Usano le istruzioni Create, Index, Drop e Alter.
Sottoquery
Questo tipo di query è costituito da un' istruzione Sql Select all' interno di un' altra query di selezione
o di comando. È possibile immettere queste istruzioni nella riga Campo della griglia di struttura
della query per definire un nuovo campo o nella riga Criteri per definire i criteri di un campo.
È possibile utilizzare le sottoquery per:
- verificare l'esistenza di alcuni risultati utilizzando le parole riservate Exists o Not Exists.
- trovare qualsiasi valore nella query principale che sia uguale, maggiore o minore dei valori
restituiti dalla sottoquery, utilizzando le parole riservate Any, In o All.
- creare sottoquery all'interno di sottoquery, ossia sottoquery nidificate.
Query di Raggruppamento (sono simili alle query a campi incrociati di Access)
SQL mette a disposizione, a questo scopo, un potente strumento: le query di raggruppamento.
Raggruppare significa "mettere insieme" tutti i dati, accomunati da qualche caratteristica, su cui
vanno fatti alcuni tipi di conti.
Per esempio si determina con una semplice query di raggruppamento l' individuazione dell'età
minima o massima o il voto medio degli alunni di una classe; oppure la somma dei prezzi degli
ordini ricevuti da un'azienda in una giornata e via dicendo.
Report
Formalmente un Report o rapporto è un’interfaccia grafica su stampante tramite la quale
rappresentare un set (elenco) di informazioni allo scopo di condividerle con altri.
I report sono indispensabili perché, sebbene sia possibile stampare copie di tabelle, maschere e dei
risultati di una query, si ottiene con essi un controllo molto maggiore sul formato dei dati
avendo la possibilità di ordinare e raggruppare le informazioni da stampare secondo certi criteri
come ad es.:
- inserendo livelli di raggruppamento sino al massimo di dieci.
- usando Subtotali (cioè totali parziali) e percentuali per gruppi di record.
- usando pulsanti di riepilogo (per ottenere valori del tipo somma, media, minimo e massimo calcolati sui
valori di riepilogo di un campo di tipo numerico),
- usando totali generali riportati nel piè di pagina del report.
- usando campi calcolati come: numero della pagina, la data di stampa del report
- aggiungendo righe, grafici o immagini nell’intestazione pagina del report
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
39
Fondamenti di Access97-2000
Si possono creare report con svariate funzioni:
Etichette postali, fatture, rubriche telefoniche e di indirizzi, elenchi di clienti o fornitori.
Creare Report
I Report possono essere generati dall’utente, in modo analogo a come si creano le maschere e le
query. È possibile creare un report senza utilizzare una autocomposizione oppure utilizzando
l'autocomposizione report. Un'Autocomposizione report rende più veloce il processo di creazione di
un report perché esegue tutte le operazioni fondamentali.
Quando si utilizza un'Autocomposizione report, vengono richieste all'utente delle informazioni e
viene creato un report in base alle risposte fornite. È possibile quindi passare in visualizzazione
struttura per personalizzarlo.
Le modalità di creazione report sono essenzialmente tre:
Report standard
Autocomposizione report.
Creazione manuale report.
Report Standard
Il Report standard crea un report che visualizza tutti i campi ed i record della tabella o della query
sottostante. Supponendo di creare un report per la tabella contratti i passi da seguire sono: aperto il
nostro database Azienda e selezionato la scheda Report dalla finestra seguente:
e cliccato sul pulsante nuovo appare la finestra seguente:
Scelto l’opzione Report standard a colonne (in esso ciascun campo viene visualizzato su una riga
separata dalla sua etichetta posta a sinistra), il risultato di tale report fornito da Access è il seguente:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
40
Fondamenti di Access97-2000
Per la stessa tabella Contratti scelto l’opzione Report standard tabellare i campi contenuti in
ciascun record vengono visualizzati su un'unica riga e le etichette vengono stampate una sola volta
nella parte superiore di ciascuna pagina come accade per una tabella di Excel, il risultato di tale
report fornito da Access è il seguente:
Autocomposizione Report
Tale modalità a differenza della precedente ci da più libertà su come dovrà essere il report ma la
piena libertà l’abbiamo se creiamo un report in visualizzazione struttura, cioè partendo da z ero.
Esercizio - Report tabelle Dipendenti e Contratti
(Tale report nel database azienda allegato è denominato R1 - Report Dipendenti e Contratti)
Creare mediante l’autocomposizione Report un report per la tabella Dipendenti, selezionando solo i
suoi seguenti campi: Nome&Cognome, DataNascita, Qualifica, Città, Sposato, Telefono. Infine
dalla tabella Contratti selezioniamo solo il campo Stipendio Base.
I suddetti campi debbono essere visualizzati secondo le seguenti condizioni:
- Inserendo un livello di raggruppamento per il campo qualifica. In questo modo nel report saranno
visualizzati vari gruppi ognuno costituito da tutte i dipendenti che hanno la stessa qualifica.
- Elencando i valori del campo città ordinati in modo crescente
e i valori del campo stipendio
base in ordine decrescente .
- Calcolando il totale parziale degli stipendi erogati dall’azienda a ciascun gruppo di dipendenti,
cioè quanto al gruppo degli agenti di commercio, quanto al gruppo dei direttori amministrativi,
quanto al gruppo dei venditori, ecc.
- Calcolare il totale degli stipendi di tutti i dipendenti erogati dalla azienda ad es. in un certo mese.
Dalla finestra contenente gli oggetti del database, selezionato il pulsante Nuovo compare la
seguente finestra in cui selezioniamo Autocomposizione Report.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
41
Fondamenti di Access97-2000
Dalla suddetta finestra selezionata la tabella dipendenti, compare la successiva finestra:
(fig. 1)
(fig. 2)
In cui bisogna selezionare tra i campi disponibili della tabella Dipendenti e della tabella Contratti
quelli che a noi servono.
Noi sceglieremo dalla tabella Dipendenti i campi Nome&Cognome, DataNascita, Città, Telefono e
Qualifica (fig. 1) e dalla tabella Contratti solo il campo StipendioBase (fig. 2). Infine clicchiamo su
Avanti e alla finestra successiva ancora Avanti.
La finestra seguente dà la possibilità di inserire nel report che stiamo creando dei livelli di
ordinamento e noi vogliamo inserirne uno: sul campo qualifica come mostrano le figure:
Tra i campi non usati nei livelli di gruppo (nel nostro caso tutti i campi tranne il campo qualifica) è
possibile scegliere quelli ed eventuali che dovranno avere valori ordinati in modo crescente o
decrescente o che contengono opzioni di riepilogo. Ciò è possibile nella seguente finestra:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
42
Fondamenti di Access97-2000
(fig. 1)
(fig. 2)
Fatte le selezioni di figura 1 nel report noi andremo a visualizzare le città in modo crescente e gli
stipendi dei dipendenti in modo decrescente, cioè dal più grande al più piccolo.
Fatte invece le selezioni di figura 2 nel report noi andremo a visualizzare per ogni gruppo dei
dipendenti la somma parziale dello stipendio erogato dall’azienda.
Dalla finestra Opzione di riepilogo cliccato su Ok e poi ancora su Avanti compare la seguente
finestra di dialogo:
Anteprima del
layout scelto
che permette di scegliere il layout (formato) di una pagina del report. Si può agire su tre elementi:
- Layout, ovvero come disporre i campi selezionati in ogni pagina del report.
- Orientamento della pagina.
- Regola la larghezza dei campi…., il cui nome è chiaramente esplicativo.
Noi sceglieremo l’opzione: allineamento a sinistra 2 e poi su avanti.
Le due ultime finestre di dialogo che compaiono sono le seguenti:
(fig. 1)
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
(fig. 2)
43
Fondamenti di Access97-2000
Nella prima (fig. 1) è possibile scegliere tra sei possibilità lo stile che dovrà avere il report, noi
sceglieremo in questo esercizio Grassetto.
Nella seconda finestra (fig. 2) bisogna dare un nome significativo per il report che abbiamo creato,
noi sceglieremo R1 – Report Dipendenti e Contratti per ricordarci che tale report è stato creato a
partire dalle tabelle Dipendenti e Contratti.
Il risultato del report creato è il seguente:
Osservazioni
- Come è stato richiesto nella traccia dell’esercizio, i dipendenti della azienda sono stati
raggruppati per qualifica.
- All’interno di ciascun raggruppamento i valori del campo città sono stati ordinati in modo
crescente.
- All’interno di ciascun raggruppamento i valori del campo stipendio base sono stati ordinati in
modo decrescente.
- All’interno di ciascun raggruppamento c’è un campo somma che effettua la somma parziale degli
stipendi dei soli dipendenti che appartengono al rispettivo gruppo.
Vediamo ora tale report in modalità struttura:
Now() inserisce in modo automatico la
data di sistema corrente nel report
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
Creato numero pagina del
report in modo automatico
44
Fondamenti di Access97-2000
Ebbene tale report presenta nel Piè di pagina report anche il campo Importo totale. Tale campo
viene visualizzato solo nell’ultim a pagina del report ed visualizza il totale degli stipendi erogati
dalla azienda ad es. in un certo mese.
Per visualizzare l’importo totale premere il pulsante
della barra di navigazione
per spostarsi all’ ultima p agina del report. Fine esercizio.
Creazione Manuale Report
La creazione manuale di un report è simile alla creazione manuale di una maschera. Nella griglia
struttura che si presenta bisogna inserire i campi che vogliamo inserire nel report.
Se tali campi riguardano una sola tabella o query allora basta selezionare la tabella o query
corrispondente nella finestra Nuovo Report.
Se invece tali campi riguardano ad es. più di una tabella o query o tabelle e query insieme allora
conviene per semplicità creare innanzitutto una nuova query, una query semplice, che ha per campi
tutti e soli i campi da utilizzare nel report.
In seguito nella finestra Nuovo Report selezioneremo tale query per creare il nostro report in
modalità struttura
Esercizio: Creazione manuale Report mediante l’uso di una query semplice.
Creare un report in modalità struttura avente le seguenti caratteristiche:
- Deve avere gli stessi campi del report R1 precedente.
- Deve essere generato a partire da una query semplice.
- Deve contenere nella intestazione Report la scritta “R2 -Report Dipendenti da Q6”
Poiché i campi da visualizzare nel Report sono: Nome&Cognome, DataNascita, Qualifica, Città,
Sposato, Telefono della tabella Dipendenti e Stipendio Base dalla tabella Contratti per quanto
suddetto ci conviene creare una nuova query, una query di selezione di appoggio al nostro report,
denominata ad es. Q6 - Query-Appo-Report-Dipendenti.
Creazione manuale della query Q6
Selezionata la scheda Query e poi il pulsante Nuovo -> Autocomposizione Query semplice -> OK,
compare la seguente finestra di dialogo già vista nello studio delle query:
Da tale finestra scelta la tabella Dipendenti, selezioniamo i campi Nome&Cognome, DataNascita,
Qualifica, Città e Telefono; invece, scelta la tabella Contratti, selezioniamo il solo campo Stipendio
Base. Dopodiché cliccato Avanti. Compare la seguente finestra di dialogo:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
45
Fondamenti di Access97-2000
Nella finestra di sopra definiamo il nome da assegnare alla query semplice appena creata, che sarà
come suddetto Q6-Query-Appo-Rerport-Dipendenti
Nella finestra del database azienda, scegliere la scheda Report -> Selezionato il pulsante Nuovo
compare la finestra Nuovo Report.
In essa bisogna scegliere la modalità struttura e come query di origine selezionare la query Q6Query-Appo-Report-Dipendenti -> Ok. Compare la griglia struttura del report (fig. 1)
(fig. 1)
(fig. 2)
Dal menù Visualizza -> selezionato la voce Elenco Campi -> compare la fig. 2.
Da essa selezionati tutti i campi con la combinazione dei tasti Maisc+ freccia in alto trasciniamoli
nel corpo del report. Andiamo ora in modalità
per visualizzare cosa abbiamo
sinora creato. Compare la fig. 1 della figura della prossima pagina:
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
46
Fondamenti di Access97-2000
(fig. 1)
(fig.2)
Torniamo in modalità struttura e andiamo ad inserire come richiesto dall’esercizio l’intestazione
R2- Report Dipendenti da Q6 e una immagine. Anzitutto facciamo comparire la griglia struttura che
ospita l’intestazione e il piè di pagina Report andando su Visualizza - >
.
Successivamente usando la casella degli strumenti inseriamo nella intestazione Report l’oggetto
per inserire l’immagine floppy e poi l’oggetto
per inserire al report l’intestazione richiesta.
Infine cambiamo colore da nero (colore di default a blu ) alle etichette dei campi del report (fig. 2 ).
Andiamo in modalità
e vediamo cosa abbiamo prodotto:
Pagina N di M
Creazione manuale Report in
forma standard a colonne
Osservazione
- Il report R2 contiene tutti i campi del report R1 precedentemente creato R1, eredidati nella query di
appoggio Q6 - Query-Appo-Rerport-Dipendenti.
- Il report R2 contiene l’intestazione voluta “R2 -Report Dipendenti da Q6” e una immagine.
Prof. M. Simone ITIS “Geymonat” a.s. 2003/04
47