INDICE
1
Introduzione
7
Creazione/Apertura di un Database
13
Le Tabelle
Creazione di Tabelle.
Modifica di Tabelle.
Caricamento/Modifica di Tabelle
Eliminazione di Tabelle
Le Relazioni (37)
La creazione di relazioni
La visualizzazione, la modifica a la cancellazione di relazioni
47
Le Query (Viste)
Autocomposizione query
Altri tipi di query
Query di comando
Join (relazioni)
Query parametriche
Considerazioni generali sulle query
71
Le Maschere
Costruzione di maschere semplici (su una sola tabella/query)
Costruzione di maschere su più tabelle/query
Modifica e cancellazione di maschere e sottomaschere
Utilizzo di maschere.
Per approfondire – considerazioni e suggerimenti su alcuni aspetti
emersi durante le prove
Costruzione di maschere contenenti oggetti (bottoni, ...)
105
I Report (Le Stampe)
Costruzione di report semplici
Costruzione di report su più tabelle/query
Modifica e cancellazione di report
Utilizzo dei report
Per approfondire – considerazioni e suggerimenti su alcuni aspetti
emersi durante le prove
Costruzione di report contenenti oggetti (Text Box, separazione di
pagine, ...)
Costruzione di report a più colonne – cenni
Introduzione
Sicuramente la gestione delle banche dati elettroniche è uno dei
nodi cruciali cui le aziende, gli enti pubblici e le grosse organizzazioni in
genere rivolgono, oggi, la loro attenzione. Questo perchè abbiamo a
disposizione, sempre più, grandi quantitativi di informazioni relative a
persone o cose (i dati) sui quali siamo chiamati a lavorare di continuo sia
per l’aggiornamento della banca dati sia per la interrogazione e
interpretazione dei dati che abbiamo a disposizione; inoltre diventa
sempre più cruciale la rapidità con cui riusciamo ad ottenere risposte
significative alle domande che ci poniamo in riferimento alla nostra
banca dati, in modo da poter meglio comprendere lo stato delle cose
passate e presenti, e, quindi, pianificare e progettare al meglio il nostro
futuro.
Quanti studenti si sono immatricolati negli anni scorsi? quanti si
sono laureati? quanti lavorano? qual’è l’età media del personale? come è
distribuito il personale in base alla categoria? Sono solo alcuni esempi di
domande alle quali solo un software di database può rispondere
rapidamente e con precisione.
Quale strumento utilizzare per la gestione di una banca dati
elettronica? Sicuramente un software creato appositamente per questo
scopo e, oggi per fortuna, ve ne sono molti. Noi abbiamo scelto
Microsoft Access per due ragioni: uno, perché è tra i software più
utilizzati al mondo; due, perché coniuga la facilità di utilizzo con
caratteristiche di gestione dati molto sofisticate, spesso in linea con quelle
di prodotti molto più professionali e, pertanto, molto più difficili da
usare. Microsoft Access si presta bene sia per un utilizzo mono-utente sia
per un utilizzo in multi-utenza, giacchè richiede, in ogni caso, una fase di
installazione molto semplice.
Introduzione
L’obiettivo che ci siamo posti con questo lavoro è non solo la
illustrazione delle funzionalità di base di Microsoft Access, in accordo
con gli standard previsti per la Patente Europea sul Computer, ma come
questo strumento debba essere utilizzato al meglio nella realtà lavorativa
di tutti i giorni, per esempio in un Ufficio virtuale come quello da noi
creato per gli esempi di questo lavoro, affinché sia più semplice e il più
breve possibile il percorso che porta al buon utilizzo di Microsoft Access
e, soprattutto, alla comprensione dei concetti fondamentali che stanno
alla base di tutti i software per la gestione di database.
Cos’è un database?
Potremmo definire un database (base-di-dati o banca dati) un
archivio elettronico? Sì, in parte; certamente una banca dati è un archivio
memorizzato su un supporto tipo hard disk, ma ciò non è sufficiente per
caratterizzare un database. Vediamo, posso memorizzare le informazioni
anagrafiche dei clienti della mia azienda in un file di tipo Word? Beh
certamente sì ma… non ci faccio gran chè, non posso generare le fatture
automaticamente dagli ordini, non posso sapere il fatturato di ogni
cliente… questo perché le informazioni in un file di testo non sono
“tipizzate”, non sono cioè strutturate e raccolte per “tipi”; allora vediamo
se con un foglio elettronico (tipo Excell) posso gestire una banca dati
visto che Excell offre la possibilità di definire bene le informazioni
suddividendole per tabelle e, all’interno delle tabelle, di definire il tipo di
dato (colonna), per esempio data, numerico, testuale, booleano. Inoltre
un foglio elettronico mi dà la possibilità di definire le formule; per
esempio, posso sommare automaticamente i dati di una colonna,
calcolare percentuali ed altro ancora… insomma mi consente, in qualche
modo, di “elaborare” le informazioni e, quindi, “interpretare” i dati.
Bene, potremmo dire, a questo punto, che un foglio elettronico è un
2
La Mongolfiera
base di dati
software di database? Direi ancora di no; manca un requisito
fondamentale per definire un software per la gestione di database: la
possibilità di definire le “Relazioni” tra i dati. Questo requisito è
fondamentale quando parliamo di database. Le “Relazioni” insieme alla
“tipizzazione” delle informazioni, alla possibilità di definire informazioni
“Chiave”, alla possibilità di utilizzare linguaggi di interrogazione dei
database (SQL) sono, dunque, le caratteristiche principali di Microsoft
Access e di tutti gli altri software per la gestione di database.
Le relazioni mi consentono di:
• evitare la ridondanza delle informazioni il che porta ad
importanti conseguenze: riduzione delle dimensioni
complessive della banca dati con conseguente miglioramento
delle prestazioni del sistema di elaborazione; diminuzione degli
errori nella fase di dataentry (immissione dei dati nella banca
dati); diminuzione del tempo necessario al dataentry
• interrogare le informazioni utilizzando i più svariati punti di
vista, il che equivale ad avere risposte sempre esaurienti e
questo mi sembra essere l’obiettivo principale per cui utilizzare
una banca dati
• ottimizzare i tempi di risposta delle interrogazioni (Query).
Manca ancora una caratteristica per definire un software di
database: la condivisione dei dati. Tipicamente un software di database
mi consente di lavorare sulla stessa banca dati in contemporanea con altri
utenti della rete. Ecco, dunque, un altro buon motivo per utilizzare un
software di database: le informazioni da me raccolte vengono messe a
disposizioni di altri utenti e viceversa; in questo modo tutti lavoriamo
meglio poiché oltre alle nostre risorse abbiamo accesso alle risorse degli
Università degli Studi di Bari
3
Introduzione
altri e da questa situazione tutti ne traggono vantaggio. Naturalmente la
condivisione delle informazioni impone anche la protezione delle
informazioni stesse; infatti la gestione della “protezione” di un database è
un’altra caratteristica di un software per database.
4
La Mongolfiera
Creazione/Apertura di un Database
Creazione/Apertura di un Database
Per lanciare il programma Microsoft Access, dopo aver cliccato sul
pulsante Start selezionare alla voce Programmi l’icona interessata, così
come indicato nella figura sottostante.
Base di Dati
Access si presenta con una finestra di scelta guidata dove è
necessario
sele–
zionare
l’opzione
desiderata, ovvero si
ha la possibilità di
creare un database
vuoto o utilizzare gli
strumenti
di
autocomposizione
(progetti, pagine e
creazioni guidate…),
inoltre
si
può
scegliere di aprire un
lavoro
preceden–
temente
salvato
mediante l’apertura
di un file esistente e seguire le indicazioni che varieranno in funzione della
scelta fatta.
Per creare un nuovo database non utilizzando la procedura
precedentemente illustrata:
• selezionare dal menù File | Nuovo. Quindi selezionare Database
nella linguetta Generale della successiva finestra di dialogo (dialog
box)
• nella Finestra (dialog box) Salva nuovo database fornire un nome
ed un percorso (directory o cartella) dove piazzare il nuovo
database e fare click sul pulsante Crea
• verrà mostrata la classica finestra con i 6 oggetti classici di un
database Access: Tabelle, Query, Maschere, Report, Macro, Moduli. A
8
La Mongolfiera
creazione/apertura di un Database
questi si aggiunge l’oggetto Pagine introdotto con la nuova
versione. Tutti questi oggetti sono radunati all’interno del gruppo Oggetti.
Università degli Studi di Bari
9
Base di Dati
Per aprire un database precedentemente creato:
• selezionare dal menù File | Apri
• dalla relativa finestra di dialogo (dialog box) selezionare il
database da aprire
• confermare mediante il bottone Apri
Per chiudere un database senza chiudere il programma, eseguire il
comando File | Chiudi.
Per uscire da Access eseguire invece: File | Esci.
10
La Mongolfiera
Le Tabelle
Le Tabelle
Le tabelle sono l’elemento base su cui si poggia un database,
perché contengono “i dati” utili allo svolgimento delle quotidiane attività
lavorative; naturalmente sarebbe troppo restrittivo parlare delle tabelle
solo come un insieme di informazioni disposte a caso; il database, come
si è appreso nell’introduzione di questo manuale è, al tempo stesso,
l’organizzazione stessa dei dati.
Come accade nella realtà, non ci sogneremmo mai di disporre i
fascicoli del personale a caso in un grande armadio, non fosse altro per la
rintracciabilità degli stessi fascicoli; di qui la necessità di organizzare in
maniera logica i documenti, è indispensabile per garantire una corretta
organizzazione del lavoro. Per analogia, nasce la necessità di
“progettare” un archivio elettronico affinché possa non solo agevolare
l’inserimento e la ricerca delle informazioni, ma anche rendere il lavoro
altamente produttivo, permettendo “interrogazioni” “mirate” ai
fabbisogni specifici del momento.
Vediamo se è possibile dare delle regole di massima per bene
impostare la creazione delle tabelle. Per cominciare è opportuno fare una
attenta analisi dei dati a disposizione e dei problemi che si vogliono
risolvere attraverso la gestione di un database; questo naturalmente è uno
sforzo concettuale fondamentale che va affrontato in maniera prioritaria,
al di là delle conoscenze specifiche sull’utilizzo di qualsivoglia software di
gestione di database.
Naturalmente gli esempi proposti in questo manuale,
rappresentano un semplificazione estrema di problematiche molto
complesse, al fine di meglio comprendere i concetti base della gestione di
Base di Dati
un database, e non sono, pertanto, una soluzione reale a problematiche
concrete.
Ipotizziamo di voler informatizzare le attività degli Uffici Personale
di una Università. Cosa necessita? Sicuramente servono le informazioni
anagrafiche relative a tutti i dipendenti (nome, cognome, data di nascita,
indirizzo, telefono, categoria di inquadramento, luogo di servizio… ecc.);
informazioni sulle strutture di lavoro (Dipartimenti, Facoltà… ecc.),
parametri relativi alle retribuzioni. Dopo aver “censito“ le informazioni,
queste vanno raggruppate per categorie omogenee che compongono
appunto le “tabelle” del database; a volte la progettazione e la
composizione delle tabelle possono risultare particolarmente
impegnative, perché non bisogna mai perdere di vista:
• l’obiettivo finale del lavoro
• gli scopi principali per i quali stiamo progettando una banca
dati.
Nel nostro esempio avremo:
ANAG: tutte le informazioni anagrafiche relative al personale
SEDI: tutte le informazioni anagrafiche relative alle strutture della
mia Università
STIPENDI: informazioni sui cedolini paghe del personale
FERIE: periodi di ferie goduti dal personale
MESI: tabella di servizio contenente i mesi dell’anno
Una volte definite le tabelle, è necessario definire per bene le
informazioni contenute all’interno di una tabella; informazioni omogenee
si definiscono in “campi”. I “campi” sono simili a quello che in un foglio
elettronico vengono chiamate “colonne”, con la differenza sostanziale
14
La Mongolfiera
Le Tabelle
che, in un database, è indispensabile fornire ulteriori informazioni
relative al “tipo” di campo. Le informazioni sono contenute in “record”
(insieme di più campi); i “record” rappresentano le “righe” della tabella
del foglio elettronico che si è presa come esempio. In una tabella
Anagrafica del personale, un “record” racchiuderà tutti i dati relativi ad
un dipendente (vale a dire la “singola scheda” dello “schedario”
anagrafico).
Ma perché definire così rigidamente i “tipi” dei campi? Questa
impostazione, che a prima vista può sembrare troppo rigida, serve in
realtà a garantire che i dati inseriti nel database siano corretti e validi.
Inoltre, per eseguire delle operazioni sui dati è necessario che gli stessi
siano tutti dello stesso “tipo”; è sicuramente impossibile “sommare” il
numero 100 alla stringa “Pippo”.
Ad ogni modo, vi è la possibilità di trattare dati in modo
“generico”; per questo scopo useremo il tipo di campo denominato
“Memo”; l’uso di questo tipo di dato è in genere sconsigliato ma è
tuttavia utile per memorizzare informazioni generiche come, ad esempio,
i commenti. Ovviamente sui dati di tipo “Memo” non è possibile
effettuare alcun tipo di elaborazione.
Va aggiunta, ora, una nozione importante; si è accennato alle
relazioni e, a questo proposito, si è detto che esse sono l’elemento che
maggiormente caratterizza un database rispetto ad altre forme di
archiviazione elettronica; bene, affinché si possano “relazionare” i dati
contenuti in tabelle diverse, è fondamentale che i dati di una tabella siano
“univocamente” identificati mediante uno specifico campo; in generale è
estremamente conveniente utilizzare, per questo scopo, dati di tipo
numerico e, nel caso di Microsoft Access, è buona norma utilizzarne uno
Università degli Studi di Bari
15
Base di Dati
denominato “contatore” al quale normalmente viene assegnato una
“chiave” principale, detta anche “indice”. Come meglio si espliciterà più
avanti, il contatore viene incrementato automaticamente ad ogni nuovo
inserimento di un record, in modo da garantire la “univocità” della
identificazione di un record.
Inoltre si consiglia il più possibile, in fase di progettazione di un
database, la scomposizione delle informazioni in “tabelle” onde favorire
la maggiore elasticità possibile alle “interrogazioni” (Query) tenendo
sempre d’occhio lo scopo per il quale si sta progettando il database,
anche in funzione di esigenze che potrebbero scaturire nel futuro.
16
La Mongolfiera
Le Tabelle
Una volta lanciato il programma di gestione di basi di dati -Microsoft
Access- è necessario creare ed impostare le tabelle in quanto esse, come
abbiamo già visto nelle pagine precedenti, sono la vera raccolta dei dati
ed il loro insieme costituisce lo schema logico del database.
Per operare con le tabelle, è necessario scegliere dall’elenco degli
Oggetti della finestra del database, la voce Tabelle.
Vengono proposte tre possibilità: Crea una tabella in visualizzazione
struttura, Crea una tabella mediante creazione guidata, Crea una tabella mediante
l’immissione di dati.
Cerchiamo brevemente di capire le differenze tra le tre scelte
proposte:
• con la scelta Crea una tabella in visualizzazione struttura: si otterrà
l’apertura di una finestra in cui, nella parte superiore, si indicano
i nomi e i tipi di campo e nella parte inferiore se ne definiscono
le proprietà. Questa, è la maniera che permette di definire in
maniera più precisa e dettagliata una tabella; sarà inoltre
Università degli Studi di Bari
17
Base di Dati
possibile, ove se ne presentasse la necessità, accedere anche
successivamente alla struttura di una tabella
• con, Crea una tabella mediante creazione guidata: si può costruire una
tabella a partire da alcuni modelli esistenti; questo è il metodo
più semplice di creare una tabella, ma è anche la modalità che
rende alquanto laboriosa la personalizzazione
• la scelta, Crea una tabella mediante l’immissione di dati: permette
l’inserimento diretto dei dati in un foglio riga-colonna (tipo
excel). Access propone inizialmente nomi generici ai campi
(Campo1, Campo2 ecc) ma consente in ogni momento di
personalizzare il nome e la tipologia di ciascun campo.
Una volta capite le differenze esistenti tra le varie scelte, si
suggerisce di selezionare, nella relativa finestra di dialogo, Visualizzazione
struttura e confermare con Apri.
Compare la finestra di
creazione di una tabella in
visualizzazione struttura.
Nella prima colonna Nome
Campo fornire il nome del campo
relativo ai dati che si intendono
inserire; come è facile intuire ad
ogni riga corrisponde un nuovo e
diverso nome campo.
Nella seconda colonna Tipo
dati si specifica il tipo del campo.
Access prevede nove tipi di dati,
tra i quali l’utente può scegliere
quello più adatto ai suoi scopi.
Ognuno di essi, oltre che da una dimensione, è caratterizzato da alcune
18
La Mongolfiera
Le Tabelle
proprietà, che possono essere impostate nel secondo riquadro che si
visualizza dopo aver scelto il tipo di campo da dove è possibile
personalizzare la memorizzazione, la gestione e la visualizzazione dei
dati.
E’ evidente che alcune tipologie di campo saranno più utilizzate di
altre, come i campi di tipo Testo, Numerico, Data/Ora, Contatore, Oggetto
OLE (per inserire oggetti, ad esempio immagini); di seguito saranno
elencate alcune delle proprietà rimandando alla guida in linea o a manuali
specialistici la consultazione analitica e dettagliata di tutte le proprietà.
Per riassumere brevemente, è possibile tra l’altro:
• per tutti i tipi di campo stabilire il formato, indicare se il
campo in questione è indicizzato (con o senza possibili
duplicati di chiave) e se l’inserimento dei dati è
obbligatorio
• per il tipo Testo stabilire la dimensione in caratteri, il
valore predefinito…(Approfondire all’occorenza le altre
caratteristiche)
• per il tipo Numero inserire la dimensione che può
assumere, principalmente i seguenti valori: intero, intero
lungo, precisione singola (numeri decimali), precisione doppia
(numeri decimali); il numero di posizioni
decimali…(Approfondire all’occorenza le altre caratteristiche)
• Per il tipo Data/Ora indicare i vari formati della
data/ora.
• Per il tipo Contatore stabilire la dimensione (intero
lungo); i nuovi valori possono essere impostati ad
incremento (ogni nuovo record avrà un numero
progressivo superiore di uno al precedente caricato) o
casuale (i numeri vengono generati casualmente in modo
Università degli Studi di Bari
19
Base di Dati
però da garantire l’univocità del valore del campo);
l’opzione più usata è incremento.
Nella terza colonna (descrizione) è possibile mettere un commento al
campo a puro scopo documentativo.
Per riassumere graficamente:
20
La Mongolfiera
Le Tabelle
Dopo aver analizzato la finestra di visualizzazione struttura e aver
inserito le impostazioni desiderate è possibile:
editare (modificare) dei valori impostati in precedenza
spostare un campo mediante una operazione di trascinamento (drag)
cancellare un campo: selezionare il campo e successivamente eseguire
il comando Modifica | Elimina.
Università degli Studi di Bari
21
Base di Dati
Inserire un campo: selezionare il campo prima del quale si vuole
l’inserimento; eseguire la sequenza Inserisci | Righe.
Creare/Modificare gli indici (anche su più campi): eseguire Visualizza
| Indici.
A questo punto appare una finestra nella quale:
• nella prima colonna si indica il nome dell’indice
• nella seconda colonna si inserisce il nome del campo che
contribuisce all’indice (per gli indici multicampo si compilano
più righe nella seconda colonna senza ricompilare la prima)
• nella terza colonna si indica il criterio di ordinamento
• In basso alla finestra è possibile, in questa fase, indicare se
un’indice è univoco (si/no) o indicare che un certo indice (anche
22
La Mongolfiera
Le Tabelle
multicampo) sia la chiave primaria della tabella (in questo caso
l’indice dovrà anche essere univoco).
Attribuire una chiave primaria alla tabella: selezionare il/i campo/i per
la chiave primaria (per selezionare più campi usare il trascinamento del
mouse oppure i tasti SHIFT e CTRL durante la/le selezione/i); dare il
comando Modifica | Chiave primaria. Si ricordi che la chiave primaria è
l’elemento privilegiato per costruire relazioni.
Uscita: chiudendo la finestra di creazione della tabella. Access allora
chiede se si vuole salvare la struttura della tabella e chiede anche (la
prima volta) quale nome attribuire alla tabella medesima.
Università degli Studi di Bari
23
Base di Dati
Modifica di Tabelle.
Selezionare una tabella dall’elenco delle tabelle.
Fare click sul bottone Struttura per accedere alla finestra struttura
della tabella descritta nel paragrafo precedente.
24
La Mongolfiera
Le Tabelle
Caricamento/Modifica di Tabelle.
Selezionare una tabella dall’elenco delle tabelle.
Fare click sul bottone Apri per accedere ad una visione “tabulare”
della tabella che consente, in maniera del tutto intuitiva, sia il caricamento di
nuovi dati che la modifica dei dati nonché ovviamente la visualizzazione dei
medesimi. In più è possibile eseguire un numero enorme di altre
operazioni sui dati della tabella: daremo di seguito alcuni cenni.
Nella maschera di caricamento/modifica di una tabella sono
possibili, tra le altre, le seguenti operazioni:
dare ESC per annullare le modifiche mentre si è ancora sulla stessa riga
(record)
Università degli Studi di Bari
25
Base di Dati
cancellare una o più righe: selezionare la/le riga/righe eseguendo il
comando Modifica | Elimina; verrà richiesta conferma
inserire un record: eseguire il comando Inserisci | Nuovo record; il
record viene sempre inserito in fondo
modificare la larghezza delle colonne: selezionare la/le colonna/e di cui
modificare la larghezza; eseguire Formato | Larghezza Colonne ed agire
sulla relativa finestra di dialogo
salvare il Layout dell’elenco con le impostazioni dell’attuale
visualizzazione con:(File | Salva)
stampare i record: eseguire il comando File | Stampa; compilare in
maniera opportuna la relativa finestra di dialogo (in particolare la sezione
relativa all’intervallo di stampa); confermare con ok la stampa. Si noti che
è possibile impostare la pagina (File | Imposta pagina) ed è possibile avere
un anteprima della stampa (File | Anteprima di stampa)
26
La Mongolfiera
Le Tabelle
eseguire operazioni di copia/taglia/incolla con i dati dei campi usando
il menù Modifica. In Office2000 è possibile operare con più appunti (fino
ad un massimo di 12): in tale caso conviene visualizzare la finestra degli
appunti (voce Visualizza | Barre degli strumenti | Appunti) dalla quale si
possono incollare le voci di appunti desiderate semplicemente
selezionandole
ricercare dati. Il tipo di ricerca che produce risultati sufficientemente
rapidi e personalizzabili è il seguente: selezionare un campo su cui
eseguire la ricerca; dare il comando Modifica | Trova; compare la finestra
di dialogo di trova e sostituisci (posizionata sulla linguetta Trova); specificare
(per il campo in questione) la stringa di ricerca, selezionare solo il campo di
interesse nella voce Cerca in, selezionare il tipo di confronto (campo intero,
parte del campo, inizio campo), nella parte che si ottiene selezionando il
bottone Altro, selezionare la zona della tabella in cui cercare (tutto, su, giù);
quindi usare il tasto trova successivo per iniziare la ricerca. Il bottone annulla
termina la ricerca
sostituire valori: la sostituzione si attiva con il comando Modifica |
Sostituisci ed ha una struttura analoga a quella della ricerca.
Università degli Studi di Bari
27
Base di Dati
spostarsi su un certo record: si usa il comando Modifica | Vai a;
indicando successivamente le impostazioni di spostamento: primo, ultimo,
successivo, precedente, nuovo
28
La Mongolfiera
Le Tabelle
Eseguire delle operazioni di filtro sui record (righe) della tabella: l’opzione
più comoda si ottiene con il comando Record | Filtro | Ordinamento/Filtro
avanzato. Una volta scelta questa voce di menù si accede ad una finestra
che consente di operare nel modo seguente.
Nella prima riga di ogni colonna si seleziona (in ordine) il campo su
cui imporre condizioni o criteri di ordinamento.
Nella seconda riga di ogni colonna si seleziona l’eventuale criterio di
ordinamento.
Università degli Studi di Bari
29
Base di Dati
Nella terza riga si indica un criterio di selezione. Il criterio di
selezione farà tipicamente uso degli operatori di relazione
(<,>,=,<>,<=,>=), degli operatori logici (And, Or, Not) e di valori
come operandi (i valori stringa andranno racchiusi tra virgolette). Si potrà
usare l’operatore Like ed i caratteri jolly (es.) per corrispondenze parziali
(ad es. Like “Franc*”) troverà un campo che contiene anche la parola
“Francesco”.
30
La Mongolfiera
Le Tabelle
Università degli Studi di Bari
31
Base di Dati
32
La Mongolfiera
Le Tabelle
E’ poi possibile cancellare delle colonne con il comando Modifica |
Elimina colonne eseguito dopo avere selezionato la/le colonna/e da
eliminare.
E’ possibile Inserire una colonna selezionando, la colonna successiva
a quella di inserimento, ed eseguire il comando Inserisci | Colonne.
Applicare il filtro per renderlo effettivo con il comando Filtro |
Applica filtro/ordina. Se non si esegue questa operazione il filtro non
viene salvato.
Salvare il filtro come query: dare il comando File | Salva come query; si
deve poi dare un nome che finirà tra le query.
E’ infine possibile uscire dalla maschera relativa ai filtri chiudendo la
relativa finestra.
Una volta usciti dalla maschera relativa ai filtri/ordinamenti è
possibile applicare il filtro creato in precedenza (comando Record | Applica
Università degli Studi di Bari
33
Base di Dati
filtro/ordina) oppure eliminare la vista attraverso il filtro in precedenza
applicato (comando Record | Rimuovi filtro/ordina).
Si osservi infine che nella prima colonna delle tabelle è possibile
che compaia un piccolo simbolo “+”, questo consente di visualizzare gli
eventuali record correlati attraverso le relazioni (vedi capitolo successivo)
con il record corrente.
Eliminazione di Tabelle.
Per eliminare una tabella è sufficiente selezionarla e dare il
comando Modifica | Elimina. Verrà richiesta conferma.
34
La Mongolfiera
Le Tabelle
Le relazioni
Università degli Studi di Bari
35
Base di Dati
36
La Mongolfiera
Le Tabelle
Le Relazioni
Quando si applicano tecniche di progettazione corrette, si ottiene
un database i cui dati sono indirizzati in modo efficace, e si è notato che
come risultato finale si tende ad ottenere molte tabelle distinte. Con i
moderni database relazionali è possibile creare relazioni tra le tabelle,
senza avere la necessità di dover successivamente riunire manualmente i
dati, in quanto, un’attenta progettazione consente di automatizzare le
relazioni tra i dati e poter operare, senza doversi preoccupare di tenere
traccia dei legami esistenti, la elaborazione delle informazioni e la
creazione e la gestione delle maschere e della query. Di seguito si vedrà
come creare alcune relazioni, tenendo conto che il target previsto per
questo manuale, impone di non andare oltre il perseguimento dello
scopo di far conoscere al lettore l’esistenza delle relazioni, suggerendo ai
più curiosi di consultare la guida in linea o manuali specialistici
disponibili presso una qualsiasi libreria informatica.
Una relazione può essere definita come un legame tra due tabelle,
basato sul valore di uno o più campi di ciascuna delle due tabelle. Di solito i
campi di almeno una delle due tabelle sono campi chiave. Tra due tabelle
possono essere create relazioni di due tipi:
relazione uno-a-uno: in questo caso ad ogni riga della prima tabella
corrisponde una sola riga nella seconda;
relazione uno-a-molti: in questo caso ad ogni riga della prima tabella
corrispondono più righe nella seconda.
Le relazioni molti-a-molti possono sempre essere decomposte in
termini di relazioni uno-a-molti con l’aggiunta di “tabelle di appoggio”.
Università degli Studi di Bari
37
Base di Dati
La creazione di relazioni.
La procedura più semplice per la creazione di relazioni è la
seguente:
Scegliere il comando Strumenti | Relazioni.
Comparirà la finestra Relazioni unitamente ad una finestra di
dialogo che consente di scegliere le tabelle tra cui creare le relazioni. Si
osservi che è possibile creare relazioni anche utilizzando Viste (Query)
oltre alle tabelle.
Selezionare ogni tabella di interesse e confermarla con Aggiungi poi
chiudere la finestra di dialogo con Chiudi. Nella finestra relazioni
rimarranno le tabelle (e le query) selezionate. Le volte successive, per fare
comparire la finestra di dialogo per selezionare le tabelle di interesse
eseguire il comando Relazioni | Mostra Tabella (dopo avere ciccato su:
Strumenti | Relazioni).
38
La Mongolfiera
Le Tabelle
A questo punto per ogni relazione che si vuole creare, individuare
la copia di tabelle di interesse ed eseguire i passi successivi:
spostarsi sulla prima tabella (che conviene sia quella del “lato uno”
nelle relazioni “uno-a-molti”). In presenza di relazioni uno-a-uno
conviene selezionare prima la tabella “principale” (quella con i dati di
riferimento) e poi quella “dipendente” (cioè quella con i dati che fanno
riferimento alla “principale”). Questo è importante soprattutto in
presenza di integrità referenziale (vedi riquadro pagina 41).
Università degli Studi di Bari
39
Base di Dati
selezionare il/i campo/i in base a cui relazionare le tabelle (per
selezionare più di un campo tenere premuto il tasto CTRL mentre si
selezionano i campi successivi al primo).
effettuare una operazione di drag (trascinamento) sul campo
corrispondente nella seconda tabella e rilasciare il pulsante del mouse.
Nel caso di corrispondenza con più campi effettuare il trascinamento
solo sul primo dei campi corrispondenti, a questo punto comparirà la
finestra di dialogo Modifica relazioni.
modificare o completare la tavola che consente di stabilire i campi posti
in relazione tra le due tabelle
accedere (tramite il bottone “Tipo join”) alla finestra di dialogo “proprietà
join”. In questa finestra occorre di solito selezionare “Includi solo le
righe in cui i campi collegati da entrambe le tabelle sono uguali”;
40
La Mongolfiera
Le Tabelle
potrebbe però qualche volta essere necessario selezionare un join
diverso. Uscire da questa finestra di dialogo.
Osservare che il tipo di relazione viene automaticamente impostato al
valore corretto (uno-a-uno o uno-a-molti).
Specificare se si vuole l’integrità referenziale. Con l’integrità
referenziale si richiede in sostanza che:
1. Non si possa inserire un valore nella seconda tabella se non c’è
già il corrispondente valore nella prima;
2. Non si possa cancellare un valore dalla prima tabella se esistono
righe correlate nella seconda.
Barrando in questo caso la casella aggiorna campi correlati a catena, si fa
in modo che cambiamenti nei campi “relazionati” della prima tabella
vengano riportati anche nelle corrispondenti righe della seconda.
Barrando la casella elimina record correlati a catena, si impone che la
cancellazione nella prima tabella (che ora è permessa) comporti la
cancellazione delle corrispondenti righe nella seconda.
Alla fine, confermare la relazione così costruita con Crea (o Ok per
le volte successive).
La visualizzazione, la modifica a la cancellazione di relazioni.
Per visualizzare la struttura delle relazioni occorre dare il comando
Strumenti | Relazioni. Comparirà la finestra relazioni nella quale saranno
mostrate le tabelle (e le query) e le relazioni esistenti tra di loro. Volendo
è possibile nascondere o mostrare tabelle (o query) rispettivamente con i
comandi Relazioni | Nascondi Tabella e Relazioni | Mostra tutto.
Per modificare una relazione:
Università degli Studi di Bari
41
Base di Dati
Dare il comando Strumenti | Relazioni.
Selezionare la relazione (con un click sul link).
Dare il comando Relazioni | Modifica Relazione.
Si accede alla finestra di dialogo Modifica relazioni (descritta nel
relativo paragrafo) per modificare i parametri della relazione.
42
La Mongolfiera
Le Tabelle
Per cancellare una relazione eseguire il comando Strumenti | Relazioni,
poi selezionare la relazione (con un click sul link) e dare il comando Modifica
| Elimina. Seguirà richiesta di conferma.
Università degli Studi di Bari
43
Le Query (viste)
Le Query (viste)
Le query (o viste) possono essere considerate tabelle virtuali che
attingono i dati da tabelle o query definite in precedenza. In generale le
query richiedono l’esistenza di relazioni ed operano selezioni e proiezioni
sull’insieme delle tabelle o query su cui sono costruite. Le query servono
in pratica per avere una visione “logica” dei dati che differisca da quella
“fisica” imposta dalla struttura delle tabelle o query di partenza.
Le query si fondano su SQL (Standard Query Language) linguaggio
di interrogazione database, usato dai più diffusi motori di database.
Naturalmente esiste un SQL standard che risponde a precisi standard
internazionali, così come esistono alcune varianti al linguaggio standard;
tra queste varianti possiamo annoverare anche l’interprete SQL di
Microsoft Access.
Le query non servono solo a vedere i dati da un’ottica diversa ma
possono anche compiere importanti operazioni di modifica sui dati stessi
sollevandoci spesso dal compiere noiose operazioni di editing; possiamo,
dunque, distinguere due categorie di query: le query di selezione e le query di
comando.
Base di Dati
Autocomposizione Query
Access dispone della funzionalità di autocomposizione query, che
consente la creazione delle query anche senza conoscere il linguaggio
SQL. Tale strumento risulta molto utile non solo per risparmiare tempo
nella fase di creazione, ma anche per imparare la sintassi del linguaggio
SQL, poiché consente, dopo aver creato la query, di visualizzare la
corrispondente sintassi.
Sicuramente il tipo di query più utilizzato è la cosiddetta query di
selezione; che filtra i dati di una o più tabelle restituendoci un set di record
ovvero una selezione ristretta di record in base a criteri prestabiliti.
Facciamo un esempio: consideriamo i dati della tabella ANAG
contenente informazioni anagrafiche sul personale
48
La Mongolfiera
Le Query
e consideriamo di voler selezionare soltanto i dipendenti assunti
dopo il 1995. Raggiungiamo lo scopo utilizzando l’autocomposizione query:
dalla finestra Database scegliamo l’oggetto Query e nuovo;
scegliamo Creazione guidata Query semplice e confermiamo con OK:
Università degli Studi di Bari
49
Base di Dati
selezioniamo la Tabella/Query origine dei dati e, da campi disponibili,
selezioniamo le informazioni che vogliamo visualizzare nella query, per
selezionare un campo cliccare sul nome del campo e poi cliccare sulla
freccia a destra per portarlo in campi selezionati,
50
La Mongolfiera
Le Query
al termine della selezione cliccare su Avanti.
Assegniamo un nome alla query facendo attenzione che lo stesso
nome non sia già stato assegnato in precedenza ad altri oggetti del nostro
database. Se intendiamo vedere il risultato finale ovvero i record restituiti
dalla query “al lavoro” clicchiamo su Aprire la query per visualizzare le
informazioni; se invece vogliamo vedere la query in modalità struttura,
clicchiamo su Modificare la struttura della query. Cliccare, infine, su Fine. In
modalità struttura possiamo intervenire ulteriormente nella definizione
della query creata in precedenza, anzi, è solo in tale modalità che diventa
possibile realizzare tutti i possibili tipi di query senza i limiti imposti
dall’autocomposizione. In visualizzazione struttura avremo quanto segue:
Università degli Studi di Bari
51
Base di Dati
Notiamo come è composta questa finestra. Nella parte alta
compare la tabella (o le tabelle) utilizzate dalla query (utilizzare il bottone
destro del mouse per aggiungerne delle altre); in basso, distribuiti su
colonne, ci sono i nomi dei campi utilizzati dalla query; inoltre, in
corrispondenza della riga Criteri sono esplicitati i criteri di selezione della
query; naturalmente è possibile indicare più criteri per ogni campo (riga
Oppure). Il segno di spunta, in corrispondenza della riga Mostra, serve, se
deselezionato, ad evitare la visualizzazione del campo in Visualizzazione
foglio dati.
Per vedere la sintassi SQL corrispondente alla nostra query
dobbiamo cliccare sul menù Visualizza e Visualizzazione SQL. La finestra
che si apre è la seguente:
52
La Mongolfiera
Le Query
Per vedere la query “all’opera”, cliccare sul Menù Visualizza e
Visualizzazione foglio dati. Il risultato della query è:
Dai 22 record iniziali abbiamo selezionato i 10 record che
rispondono alla condizione:
ANAG.Data_Assunzione > = #01/01/1995#
Vediamo di descrivere la sintassi SQL di questa query:
SELECT è la parola chiave maggiormente usata nelle query di
selezione; segue l’elenco dei campi che vogliamo visualizzare separati da
uno spazio e una virgola, normalmente nella forma
NomeTabella.NomeCampo (* -asterisco- per includerli tutti); con la parola
chiave FROM NomeTabella indichiamo la tabella di origine dei dati.
WHERE NomeTabella.NomeCampo condizione indica all’interprete SQL di
selezionare i record in base ai criteri indicati; il tutto generalmente viene
seguito dalla clausola ORDER BY NomeTabella.NomeCampo per ordinare i
Università degli Studi di Bari
53
Base di Dati
record in base ad un campo specifico. E’ da notare come le date siano
racchiuse dal simbolo “#”; il testo passato ad una query viene racchiuso
da due apicetti (es. WHERE ANAG.Cognome > = ‘pippo’).
Per passare in modo rapido alle modalità Visualizzazione, Struttura, o
SQL, è possibile cliccare sulla barra degli strumenti database di Access sul
bottone con il simbolo corrispondente.
54
La Mongolfiera
Le Query
Altri tipi di Query
Il tipo “query a campi incrociati” visualizza le stesse informazioni di
una query di selezione, raggruppandole in modo da ottenere situazioni
riassuntive e di riepilogo come nell’esempio che segue.
Volevamo ottenere una situazione riepilogativa che ci indicasse i
giorni di ferie complessive goduti da ogni singolo dipendente
raggruppandoli per mese ed inoltre il totale dei giorni di ferie goduti
nell’arco dell’anno. Per ottenere questo risultato abbiamo considerato i
dati di partenza e cioè la tabella ANAG e FERIE:
Università degli Studi di Bari
55
Base di Dati
È stato, inoltre, necessario creare una query (Ferie(tutte)) che
riassumesse i dati provenienti dalle due tabelle e che è descritta di
seguito, in modalità struttura…
…in modalità SQL…
…e in modalità foglio dati.
56
La Mongolfiera
Le Query
A questo punto abbiamo creato la query a campi incrociati, di
seguito descritta in modalità struttura…
Università degli Studi di Bari
57
Base di Dati
…modalità SQL…
…e foglio dati.
58
La Mongolfiera
Le Query
Data la complessità di questo tipo di query si consiglia fortemente
l’uso dell’autocomposizione query; le funzioni SQL di questo tipo di
query non rientrano nell’SQL standard ma sono state aggiunte da
Microsoft per aggiungere ad Access alcune funzionalità proprie di Excell
(tabelle Pivot).
Università degli Studi di Bari
59
Base di Dati
Query di Comando
Abbiamo poi un gruppo di query dette query di comando:
• query di creazione che consentono di definire e, quindi “creare
tabelle”
• query di aggiornamento, che consentono di “modificare” i dati di
una o più tabelle in base a criteri definibili dall’utente
• query di accodamento che si limitano ad “aggiungere” record ad
una tabella
• query di eliminazione che cancellano record da una tabella.
Descriviamo una query di accoramento. Ci siamo proposti di creare
automaticamente nella tabella Stipendi, i record relativi alle paghe del
mese di Gennaio; si vuole attribuire uno stipendio pari a 100 per il
personale appartenente alla categoria B e 200 a tutti gli altri. In modalità
struttura la query si presenta così:
60
La Mongolfiera
Le Query
la sintassi è la seguente:
Dopo l’esecuzione della query otteniamo che la tabella STIPENDI
(precedentemente vuota) si presenta con i seguenti record:
Università degli Studi di Bari
61
Base di Dati
Join (Relazioni)
La possibilità di relazionare i dati di più tabelle o query è possibile
mediante i cosiddetti join (join fa parte della sintassi SQL e significa,
appunto, riunire). Ci sono tre tipi di join: INNER JOIN, RIGHT JOIN,
LEFT JOIN. Vediamo l’esempio seguente:
la tabella ANAG…
…è relazionata con la tabella SEDI…
62
La Mongolfiera
Le Query
…attraverso la relazione ANAG.Id_sede_di_servizio = SEDI.Id
Vogliamo riunire le due tabelle al fine di ottenere un elenco
anagrafico del personale dove, invece del campo Id_sede_di_servizio
(numerico), vogliamo vedere il nome della Sede di servizio
corrispondente (testo) come di seguito riportato:
Università degli Studi di Bari
63
Base di Dati
a seguire è descritta la query in visualizzazione struttura:
Diamo un’occhiata alla sintassi della query precedente (Menù
Visualizza – SQL):
è da notare come i nominativi che avevano Id_sede_di_servizio = 0 non
sono stati inclusi nell’elenco, questo perché la clausola INNER JOIN
esclude i record della tabella principale che non hanno un corrispondente
64
La Mongolfiera
Le Query
record sul lato “destro” (tabella SEDI). Proviamo a cambiare INNER
JOIN in RIGHT JOIN, il risultato sarà il seguente:
In modo analogo, se vogliamo vedere tutti i record della tabella
SEDI che non hanno alcun record relazionato nella ANAG (tabella di
“sinistra”), dovremo cambiare la clausola INNER JOIN in LEFT JOIN
ottenendo il seguente risultato:
Università degli Studi di Bari
65
Base di Dati
Le clausole di JOIN non richiedono la definizione di relazioni nel
database; è, però, necessario che i campi collegati siano ovviamente dello
stesso tipo.
66
La Mongolfiera
Le Query
Query Parametriche
A volte sorge la necessità di utilizzare la stessa query più volte,
modificando, per esempio, un criterio di selezione. Microsoft Access
permette l’utilizzo flessibile della query consentendo di impostare nei
criteri anziché valori costanti, valori variabili richiesti all’utente ad ogni
avvio della query. Modifichiamo la query data di assunzione modificando il
criterio di [Data_assunzione] da
> = #01/01/1995#
in
> = [Assunti dal :]
che vuol dire: richiedi all’utente l’inserimento del parametro
[Data_assunzione] permettendo, quindi, un utilizzo flessibile della query
(non sarà necessario modificare la query per cambiare il criterio
Data_assunzione).
Università degli Studi di Bari
67
Base di Dati
Considerazioni generali sulle Query
Il risultato prodotto da una query è un set di record immediatamente
visualizzabile sullo schermo sotto forma di griglia ed è anche stampabile;
certamente il modo migliore per stampare il risultato di una query è
quella di generare un REPORT che “prelevi” i dati restituiti da una
query; la trattazione di questo argomento è rimandata al capitolo sui
REPORT.
E’ possibile esportare il risultato di una query nei più diffusi formati
(Generico di testo, RTF, Word, Excell, HTML, ecc.); ciò consente di
condividere le informazioni con altri utenti che non hanno accesso al
nostro database.
Sarebbe opportuno approfondire la sintassi SQL poiché solo
manipolando direttamente la stringa Sql generata dall’autocomposizione
query è possibile sfruttare al meglio le caratteristiche di questo potente
linguaggio di interrogazione.
68
La Mongolfiera
Le Maschere
Le Maschere
L’oggetto maschera consente di interagire con “i dati” a nostra
disposizione, in maniera più efficace rispetto alla visualizzazione foglio
dati che abbiamo incontrato parlando delle tabelle.
Parlando di interfaccia “amichevole”, le maschere aiutano l’utente a
navigare nelle informazioni, a mettere a fuoco la grandezza del database,
a migliorare il lavoro ottimizzando la metodologia di inserimento dei
dati.
Il modo più semplice per creare una maschera è sfruttare la
modalità “autocomposizione” che in maniera semplice e guidata “passo
per passo”, consente di aprire una “finestra”, detta anche “form”, sui
dati affinché sia possibile inserire, modificare, ricercare le informazioni
contenute nel database. Access, per questo scopo, mette a disposizione
degli utenti un vasto insieme di “oggetti”, tutti ereditati dall’interfaccia
grafica di windows, come caselle di testo (textbox), etichette (label),
caselle combinate (combobox), bottoni, linee, griglie (grid) e tanti altri
ancora. Tali oggetti sono “collegabili” direttamente ai dati sottostanti e
rendono così possibile la modifica degli stessi. Questo è reso possibile
dalle “proprietà” che caratterizzano ogni oggetto.
Le “proprietà” degli oggetti consentono di definire le caratteristiche
grafiche e le modalità di funzionamento degli stessi. Alcune di queste
proprietà sono modificabili in maniera “visuale” (mediante l’utilizzo del
mouse) o comunque in fase di progettazione della maschera come, ad
esempio, la posizione sullo schermo (proprietà left: distanza da sx,
proprietà top: distanza dall’alto), il colore (proprietà color), il tipo di
carattere (proprietà font); alcune proprietà sono modificabili solo durante
l’esecuzione del programma con l’utilizzo di Visual Basic; altre ancora
sono di sola lettura (e quindi non possono essere modificate).
Base di Dati
E’ bene sottolineare come le proprietà sono suddivise in tre
categorie: Formato, Dati, Evento. In breve, per ora, diremo che le proprietà
Formato sono attinenti all’aspetto grafico dell’oggetto; le proprietà Dati
sono attinenti al collegamento degli oggetti verso le tabelle o le query del
nostro database. Per parlare delle proprietà Evento diremo, per ora, che
sono utilizzate nella scrittura di codice di programmazione e richiedono
conoscenze approfondite di Visual Basic.
Le maschere consentono di gestire bene le fasi del dataentry
(inserimento dati). E’ possibile, infatti, realizzare dei controlli
personalizzati che filtrano i dati immessi dall’operatore (diminuendo la
possibilità di commettere errori) ed inoltre, diminuiscono i tempi
necessari all’inserimento dei dati, grazie all’uso degli oggetti grafici
“connessi” al database. Il tutto, ovviamente, è possibile solo se
“progettiamo” bene le nostre maschere, magari utilizzando lo strumento
di programmazione “Visual Basic”.
72
La Mongolfiera
Le Maschere
Costruzione di maschere semplici (su una sola tabella/query).
Per cominciare bisogna costruire una maschera relativa ad una sola
tabella o query, infatti le query, come abbiamo visto, non sono altro che
“estrapolazioni” di tabelle, per cui conservano la stessa struttura e la
stessa sintassi.
Per creare, dunque, una maschera in modalità “autocomposizione”
si può procedere come segue:
• selezionare la voce Maschere e successivamente il bottone Nuovo
• selezionare ora l’opzione Creazione guidata Maschera nella
successiva finestra di dialogo; è importante a questo punto
selezionare la tabella/query di riferimento e confermare con Ok
Università degli Studi di Bari
73
Base di Dati
• nella successiva finestra di dialogo, selezionare i campi da
inserire nella maschera (non è necessario selezionarli tutti) e poi
selezionare Avanti.
• nella nuova finestra di dialogo che compare, indicare, tra quelli
proposti, il layout scelto per la maschera:
a) a colonne (viene mostrato un solo record per pagina)
b) tabulare (vengono mostrate le varie righe della tabella/query
in forma tabulare)
c) foglio dati (simile alla modalità precedente ma con uno schema
di tipo foglio elettronico); giustificato. Selezionare Avanti.
• Si apre una nuova finestra di dialogo in cui scegliere lo stile di
visualizzazione tra quelli proposti: standard, tessuto, spedizione, ecc.
Selezionare Avanti.
• Nella successiva finestra di dialogo, assegnare il nome (titolo)
della maschera e selezionare il radio button “Modifica la struttura
della maschera” in modo da potere apportare modifiche alla
struttura fin qui definita nella finestra di creazione/modifica delle
maschere. Come ultima operazione si seleziona Fine.
74
La Mongolfiera
Le Maschere
Università degli Studi di Bari
75
Base di Dati
Nella finestra di creazione/modifica delle maschere si possono
eseguire varie operazioni, tra cui:
• selezionare un oggetto della maschera. Sono infatti possibili, con
le usuali modalità (uso del tasto SHIFT durante la selezione),
selezioni e successive manipolazioni di uno o più oggetti
• trascinare gli oggetti o i relativi marker per spostare/ridimensionare.
Lo spostamento si ottiene con il marker in alto a sinistra.
• eseguire operazioni tipo taglia/copia/incolla con il menù Modifica
• visualizzare le proprietà dello/degli oggetto/i selezionato/i ed
eventualmente modificarle attraverso una finestra a linguette (comando
Visualizza | Proprietà). La possibilità di accedere alle proprietà di
un oggetto sarà fondamentale per la programmazione in VBA.
76
La Mongolfiera
Le Maschere
Le proprietà sono differenti da oggetto ad oggetto e sono
numerose. Quando si vuole modificare qualche caratteristica di
un oggetto conviene provare a controllare se c’è qualche
proprietà che si riferisce a quella determinata caratteristica in
modo da poterla modificare. Una proprietà interessante
dell’oggetto maschera nel suo complesso è la proprietà Tipo
recordset (linguetta Dati), infatti se si sceglie dynaset si potranno
(in generale) eseguire modifiche, mentre se si sceglie snapshot si
potranno solo visualizzare i dati
• visualizzare l’elenco dei campi (comando Visualizza | Elenco
Campi) per aggiungere altri elementi (dalle tabella/query
selezionate all’inizio) alla maschera con una operazione di
trascinamento
Università degli Studi di Bari
77
Base di Dati
• inserire oggetti nella maschera (ad esempio immagini con il
comando Inserisci | Immagine; l’immagine può, poi, essere portata
in primo o secondo piano, come ogni altro oggetto, con i
comandi Formato | Porta in primo piano o Formato | Porta in secondo
piano).
78
La Mongolfiera
Le Maschere
Università degli Studi di Bari
79
Base di Dati
Costruzione di maschere su più tabelle/query
A volte è necessario costruire una maschera relativa a più
tabelle/query, in questo caso è utile procedere come segue:
• selezionare la linguetta Maschere
• selezionare poi il bottone Nuovo
• cliccare su Creazione guidata Maschera nella successiva finestra di
dialogo e confermare con Ok
• selezionare le tabelle/query (una alla volta) e poi, sotto, i campi da
inserire nella maschera (non è necessario selezionarli tutti).
Selezionare Avanti
• nella successiva finestra di dialogo, è necessario selezionare la
modalità di visualizzazione e proseguire con Avanti.
Occorre in pratica selezionare:
• il criterio di priorità: scegliere, in ordine, le tabelle/query che
guidano la visualizzazione
• il tipo di visualizzazione a maschera: le voci tra cui scegliere
dipendono dalla scelta precedente ma tipicamente si possono
avere le seguenti voci:
a)
maschera singola: in tal caso, tutti i campi vengono inseriti
su di un’unica maschera; questa voce non è molto
comune per più tabelle/query
b)
maschera con sottomaschere: in tal caso la struttura delle relazioni
tra le tabelle determina come andranno disposti i dati
all’interno di due (o più) livelli, i dati della maschera principale
ed i dati della sottomaschera che saranno, in effetti, correlati
a quelli della maschera principale
c)
maschere collegate: in tal caso la struttura delle relazioni tra le
tabelle determina come andranno disposti i dati all’interno
80
La Mongolfiera
Le Maschere
di due (o più) livelli, i dati della maschera principale ed i dati
della maschera collegata, richiamata tramite un pulsante, che
saranno i dati correlati a quelli della maschera principale.
Ogni scelta nella finestra di dialogo viene rappresentata con un
esempio che mostra la struttura che verrà generata dalla creazione guidata
• Nella successiva finestra di dialogo (nel caso, dopo le scelte
effettuate, venga proposta) è necessario indicare tra quelli
elencati, il layout scelto per la maschera, tipicamente:
a)
a colonne (viene mostrato un solo record per pagina)
Università degli Studi di Bari
81
Base di Dati
b)
tabulare (vengono mostrate le varie righe della
tabella/query in forma tabulare)
c)
foglio dati (simile alla modalità precedente ma con uno
schema del tipo foglio elettronico).
A questo punto si potrà selezionare Avanti
• la finestra di dialogo che segue serve per decidere lo stile di
visualizzazione tra quelli proposti: standard, tessuto, spedizione, ecc..
Selezionare Avanti
• ora bisogna, quindi, fornire un nome (titolo) per le maschere e
sottomaschere (che possibilmente non devono contenere spazi)
e selezionare il radio button “Modifica la struttura della maschera” in
modo da potere apportare modifiche alla struttura fin qui
definita nella finestra di creazione /modifica delle maschere.
Selezionare Fine.
82
La Mongolfiera
Le Maschere
Arrivati a questo punto, si può modificare la maschera (principale),
come già descritto nel paragrafo precedente, all’interno della finestra di
creazione/modifica delle maschere. Per poter modificare una sottomaschera
è sufficiente selezionarla nella finestra (voce) Maschere, premere il bottone
Struttura ed accedere, così, alla finestra di creazione /modifica delle maschere
per le modifiche.
Modifica e cancellazione di maschere e sottomaschere.
Al fine di modificare una maschera o una sottomaschera è
sufficiente selezionarla nella finestra (voce) Maschere, premere il bottone
Struttura, ed accedere, per le modifiche, alla finestra di creazione /modifica
delle maschere.
Per cancellare una maschera o una sottomaschera è sufficiente selezionarla
nella finestra (voce) Maschere e premere il bottone CANC. Verrà chiesta
conferma all’operazione selezionata.
Utilizzo di maschere
Le maschere forniscono una interfaccia personalizzabile che
consente di visualizzare, modificare (se permesso) ed, in generale, di
manipolare i dati di tabelle e query.
N.B. per creare maschere su cui siano eseguibili inserimenti potrebbero essere
richieste una serie di condizioni tra cui quella di includere il campo chiave del lato
“molti” di una relazione uno-a-molti.
Le operazioni necessarie al fine di operare con una maschera, sono:
• selezionare la voce Maschere del database corrente
Università degli Studi di Bari
83
Base di Dati
• selezionarne una, dall’elenco delle maschere
• fare click sul pulsante Apri per accedere alla maschera che
consente, in maniera del tutto intuitiva, la visualizzazione e la
manipolazione dei dati
All’interno della maschera sono disponibili (se non sono stati
disabilitati) i controlli per passare alla prima, alla successiva, alla
precedente, all’ultima, ad una specificata riga della tabella/query corrente.
Per nuovi inserimenti (se permessi), è’ possibile passare alla riga
successiva all’ultima. Esistono, inoltre, i pulsanti per selezionare
direttamente le righe (cioè i record).
84
La Mongolfiera
Le Maschere
Ancora, è possibile eseguire un numero enorme di operazioni a
contorno sui dati della maschera che si ottengono tramite menù e sono le
stesse che sono state descritte (almeno per quanto riguarda le più
interessanti) nel paragrafo relativo al caricamento/modifica di tabelle. Si
osservi però che, per quanto riguarda le operazioni di filtro e ordinamento, alcune
volte potrebbe essere necessario impostare e modificare (quindi applicare) i
filtri/ordinamenti a livello di sottomaschere e maschere collegate affinché,
poi, possano essere usati ed agiscano anche sulle maschere principali. A
volte, per evitare problemi si potrebbero creare i filtri all’interno di opportune Query.
Università degli Studi di Bari
85
Base di Dati
Per approfondire
Considerazioni e suggerimenti su alcuni aspetti emersi durante le prove
L’utilizzo pratico delle maschere ha evidenziato alcuni problemi; i
seguenti punti, costituiscono un elenco di regole che si suggerisce di
utilizzare e vogliono essere, almeno in parte, la risoluzione di alcuni
problemi riscontrati:
• i Filtri/Ordinamenti (che non sono definiti all’interno di query)
vanno di solito applicati ogni volta che si rientra sull’oggetto a cui
sono riferiti.
• quando si costruiscono maschere con sottomaschere a tre
livelli, si verifica, in determinate condizioni di lavoro, un “baco”
che termina l’applicativo Access. Si consiglia, quindi, di
procedere con cautela e possibilmente di evitare maschere con
sottomaschere a 3 livelli possibilmente ricorrendo a maschere collegate
a tre livelli che non hanno problemi (salvo forse la necessità di
definire filtri passando attraverso opportune query di appoggio – vedi sotto).
• è stata scoperta una correlazione tra il “baco” di cui sopra (relativo a
maschere con sottomaschere a tre livelli) e l’uso dei filtri/ordinamenti nelle
maschere; eliminando tutti i filtri/ordinamenti il problema pare
scomparire totalmente anche se possono permanere problemi di
efficienza. Se si presentano, comunque, difficoltà (usando o non
usando ordinamenti e filtri) si consiglia di usare maschere collegate a
tre livelli o un altro espediente (anziché usare le sottomaschere a tre
livelli)
• per eliminare le difficoltà precedenti (problemi di efficienza o di
bachi) si può creare un “duplicato” query delle tabelle necessarie
(eventualmente con filtri/ordinamenti) basando la Maschera su
queste query invece che sui dati originari risolvendo, così, il
problema di efficienza e della necessità di filtri/ordinamenti
86
La Mongolfiera
Le Maschere
• è possibile inserire una sottomaschera in una maschera usando
la Toolbox. Una volta inserita una sottomaschera ed assegnata ad
essa una maschera (voce Oggetto origine delle proprietà) è possibile
visualizzarla e modificarne le proprietà selezionando con il
pulsante destro del mouse l’area della sottomaschera individuata
dal righello.
• in fase di modifica di una maschera è possibile fare uso delle
proprietà Collega Campi Secondari e Collega Campi Master (linguetta
Dati) di un oggetto sottomaschera serve per correlare i record di
una sottomaschera, in base ad uno o più campi della
sottomaschera stessa (campi secondari), con il record in uso della
maschera principale, in base ad uno o più campi della stessa
(campi master). Se i campi sono molteplici vanno separati da
punto e virgola
Università degli Studi di Bari
87
Base di Dati
• con lo stesso principio del punto precedente, è possibile
correlare i record di una sottomaschera con quelli di un’altra
sottomaschera, entrambe “figlie” della stessa maschera
principale. In tal caso nei campi master della maschera di terzo
livello occorrerà usare la sintassi [nome sottomaschera di secondo
livello]![Nome campo]. In questo modo potrebbe però accadere
che la sottomaschera di terzo livello mostri sempre i record
correlati alla prima riga della maschera di secondo livello. Per
ovviare a questo problema è possibile agire come segue:
a)
attraverso la Toolbox inserire una casella di testo nella
maschera principale; richiamare le proprietà e impostare
la proprietà Visibile a No e la proprietà Origine controllo a
“=[nome sottomaschera di secondo livello]![Nome campo]”;
impostare, infine, nei campi master della maschera di terzo
livello, il nome della casella di testo al posto dell’espressione
suggerita in precedenza
88
La Mongolfiera
Le Maschere
• è possibile, in fase di modifica di una maschera (principale),
includere una o più altre maschere come sottomaschere. Questo
risultato si ottiene disponendo in maniera opportuna le diverse
finestre e trascinando la maschera, che dovrà diventare
sottomaschera dalla finestra “Maschere”, nell’opportuna area
all’interno della finestra di creazione/modifica della maschera
principale. Se si inseriscono due sottomaschere (da correlare tra
loro e con la maschera principale) occorre lavorare come
indicato al punto precedente affinché ci sia coerenza tra i dati
presenti nella maschera principale e nelle sottomaschere
• è stato osservato che può essere utile modificare il tipo di
maschera all’interno della finestra di creazione/modifica delle
maschere adottando la seguente procedura:
a)
si fa in modo che non sia selezionato nessun oggetto
della maschera (perché sia selezionata la maschera nel
suo complesso)
b)
si esegue il comando Visualizza | Proprietà
c)
si controlla/modifica la proprietà Formato |
Visualizzazione predefinita (maschere continue =
rappresentazione tabulare; foglio dati; maschera singola)
• se si verificano problemi durante l’uso di un database, si
consiglia di procedere ad una compattazione del database
medesimo. Per compattare un database: dare il comando
Strumenti | Utilità database | Compatta e ripristina database. Può
essere conveniente compattare periodicamente il database per
eliminare “sprechi” di memoria. E’ anche possibile compattare
un database quando non è aperto nessun altro database,
richiamando sempre la voce di menù Strumenti | Utilità database
| Compatta e ripristina database e seguendo le indicazioni
Università degli Studi di Bari
89
Base di Dati
• se i dati non si presentano nell’ordine previsto dal
Filtro/Ordina creato in precedenza è sufficiente dare il
comando Record | Applica filtro/Ordina.
Costruzione di maschere contenenti oggetti (bottoni, ...)
Gli oggetti, all’interno delle maschere, si usano principalmente in
concomitanza della programmazione in VBA e per tale ragione
rimandiamo più oltre una discussione più approfondita su tali aspetti. In
questo paragrafo vogliamo solo mostrare, per linee generali, l’uso degli
oggetti più significativi quali elementi per mostrare/manipolare i dati di un
database attraverso una maschera.
Per disporre oggetti su di una maschera occorre passare in
visualizzazione struttura (si seleziona una maschera e si preme il bottone
Struttura oppure si preme il bottone Nuovo e si seleziona visualizzazione
90
La Mongolfiera
Le Maschere
struttura nella successiva dialog box) e quindi attivare la ToolBox con il
comando Visualizza | Casella degli strumenti. Nella ToolBox potrà convenire
lasciare sempre abilitato il bottone per l’autocomposizione dei controlli
(il bottone con la “bacchetta magica”).
Quando si devono modificare o visualizzare le proprietà di un
oggetto lo si seleziona e si sceglie Proprietà dal menù Visualizza o dal menù
di scelta rapida.
Di seguito, per ogni controllo significativo, vengono date alcune
indicazioni su come gestirlo (a livello di proprietà) per le più comuni
esigenze. Per esigenze più sofisticate è necessario controllare/gestire
anche altre proprietà oltre a quelle che verranno elencate.
Università degli Studi di Bari
91
Base di Dati
Il primo oggetto di cui conviene occuparsi è sicuramente la maschera
nel suo complesso. Per selezionare la maschera basta non selezionare
alcun oggetto. Nella finestra delle proprietà risultano interessanti i
seguenti elementi:
• origine Record: si può specificare un tabella, una query o una
query SQL che descrivono i record (le righe) che verranno
visualizzati nei controlli della maschera. Si può scegliere il
pulsante a destra (quello con “...”) per generare
automaticamente la query per l’origine dei record: l’ambiente
richiamato è quello per la costruzione e la modifica di query.
• visualizzazione Predefinita: si può scegliere il tipo di maschera che
serve: maschere continue ossia rappresentazione tabulare; foglio
dati; maschera singola. Se necessario, è poi, possibile
visualizzare l’intestazione/piè pagina di maschera o di pagina con i
relativi comandi dal menù Visualizza.
92
La Mongolfiera
Le Maschere
Un altro tipo di oggetto interessante è la sezione (corpo, piè pagina
maschera, intestazione maschera, ...). Basta selezionare la barra relativa alla
sezione desiderata per potere accedere alle sue proprietà (tramite il menù
visualizza o il menù di scelta rapida). Le caratteristiche principali sono:
• visibile: che consente di stabilire se la sezione in questione sarà
visibile o meno
• colore dello sfondo
• aspetto: piatto, in rilievo, incassato
L’oggetto sicuramente più interessante è il Text Box (detto anche
edit control o casella di testo). Le proprietà più interessanti da gestire (una
volta selezionato l’oggetto) sono:
• nome elemento: il nome dell’oggetto
Università degli Studi di Bari
93
Base di Dati
• origine controllo: tipicamente si può scegliere uno dei campi
appartenenti al recordset selezionato come origine controllo
della maschera (il combo box a destra consente appunto questa
selezione). E’ anche possibile costruire espressioni (che
tipicamente combinano i valori dei campi appartenenti al
recordset della maschera); ad esempio: =Str([NumFatt]) & " del
" & Str([DataFatt]). E’, altresì, possibile costruire espressioni per
aggregare (es. sommare) valori (di solito appartenenti al
recordset
associato
alla
maschera),
ad
esempio:
=Somma([SommaImpo]); di solito le formule di aggregazione sono
poste nella sezione di piè di pagina della maschera. La
costruzione di espressioni può essere facilitata dall’uso del
generatore di espressioni (pulsante a destra: “...”). Si noti che le
espressioni devono iniziare con il simbolo “=”
• formato: stabilisce il formato dell’oggetto (numero generico,
standard, fisso, valuta, data generica, ...)
• abilitato: indica se l’oggetto può diventare l’oggetto corrente di
una maschera
• bloccato: istituisce se è possibile modificare i dati contenuti
nell’oggetto
• visibile: stabilisce se il controllo è o meno visibile.
Per inserire elementi descrittivi conviene usare l’oggetto etichetta
(label). Proprietà significative:
94
La Mongolfiera
Le Maschere
• nome elemento: indica il nome dell’oggetto
• etichetta: determina una stringa descrittiva che comparirà sulla
maschera
• visibile: indica se il controllo è o meno visibile
• per raggruppare controlli è possibile usare l’oggetto cornice (group
box). Anche in questo caso proprietà significative (selezionare il
bordo per richiamare le proprietà) sono:
Università degli Studi di Bari
95
Base di Dati
• nome elemento: determina il nome dell’oggetto
• etichetta: è una stringa descrittiva che comparirà nell’intestazione
della cornice (selezionare l’etichetta per accedere a questa
proprietà)
• visibile: indica se il controllo è o meno visibile
Un elemento molto comune è il Pulsante di comando (Command
Button) che spesso è usato in concomitanza della programmazione in
VBA. Qui vogliamo solo analizzare un utilizzo caratteristico che è quello
che consente, in autocomposizione, di generare il richiamo di una
maschera collegata. Per ottenere tale risultato bisogna:
• selezionare il pulsante di comando dalla ToolBox
96
La Mongolfiera
Le Maschere
• trascinare il controllo sulla maschera per disporlo come si
preferisce
• quando compare la prima finestra di dialogo, scegliere
Operazioni su maschere (nella lista categorie) e Apri Maschera (nella
lista azioni):
nelle successive 4 Finestre di dialogo (dialog box) Selezionare:
• la maschera da aprire dalla list box
• Apri la maschera e trova dati specifici da visualizzare
• (in maniera intuitiva) i campi delle due maschere da correlare:
quando si apre la maschera premendo il bottone, in tale
maschera verranno mostrati solo i record (o il record) correlati;
• un testo o un immagine per il bottone
• Nella maschera successiva indicare un nome per il pulsante di
comando e selezionare Fine.
In ogni caso, è possibile accedere alle proprietà del bottone di
comando di cui le più significative sono le seguenti:
• visibile: indica se il controllo è o meno visibile
• nome elemento: è il nome dell’oggetto
• etichetta: determina una stringa descrittiva che comparirà sul
pulsante di comando.
Università degli Studi di Bari
97
Base di Dati
Un altro oggetto importante è la casella combinata (ComboBox). Qui
vogliamo analizzare un utilizzo caratteristico che è quello che consente,
in autocomposizione, di generare una casella combinata per la ricerca di
record attraverso l’elenco a discesa. Questa operazione è possibile solo in
alcuni contesti dove la macchina è in grado di reperire i dati della
maschera a partire dal valore selezionato nella casella combinata
(tipicamente in presenza di sole tabelle). Per ottenere ciò bisogna:
• selezionare la casella combinata dalla ToolBox
• trascinare il controllo sulla maschera per disporlo come si vuole
• quando compare la prima finestra di dialogo: scegliere Trova un record
nella maschera ...
98
La Mongolfiera
Le Maschere
• Nella successiva dialog box, selezionare il campo che entrerà a far
parte dei dati della casella combinata (in realtà è possibile scegliere più
di un campo)
• la finestra di dialogo che adesso appare consente di regolare le
dimensioni della/e colonna/e di dati e decidere (se presente) se
lasciare o meno barrato il check box per la presenza/assenza del
campo chiave.
Se sono stati scelti più campi potrebbero comparire altre finestre di
dialogo:
• nella prima scegliere un campo (di solito il campo chiave)
• nella seconda scegliere memorizza il valore temporaneamente ...
• nella maschera successiva, selezionare un nome per la casella
combinata e selezionare Fine.
Durante l’utilizzo della casella combinata precedentemente
costruita, se si sono effettuati aggiornamenti al recordset sottostante,
potrà essere utile usare il comando Record | Aggiorna per aggiornare il
contenuto della casella combinata stessa.
Un altro utilizzo caratteristico della la casella combinata (ComboBox) è
quello che consente, in autocomposizione, di generare una casella
combinata per la assegnazione di un valore ad un campo della maschera
prelevandolo dall’elenco a discesa. Per ottenere ciò si deve:
• selezionare la casella combinata dalla ToolBox
• trascinare il controllo sulla maschera per disporlo come si vuole
• quando compare la prima finestra di dialogo: scegliere Ricerca
valori in una tabella o query da parte …
Nelle successive finestre di dialogo (dialog box):
• selezionare la tabella/query da cui prelevare i dati
Università degli Studi di Bari
99
Base di Dati
• selezionare il/i campo/i che entreranno a far parte dei dati della
casella combinata
• regolare le dimensioni della/e colonna/e di dati e decidere (se
presente) se lasciare o meno barrato il check box per la
presenza/assenza del campo chiave
• (potrebbe non comparire) bisogna selezionare il campo della
tabella/query da associare al campo della maschera attuale
• selezionare memorizza il valore permanentemente in questo campo e
quindi selezionare il campo (della maschera) in cui inserire il
valore
• Nella successiva maschera è necessario selezionare un nome per
la casella combinata e selezionare Fine.
In ogni caso, è possibile accedere alle proprietà della Casella
Combinata di cui le più significative sono le seguenti:
• nome elemento: è il nome dell’oggetto
• origine controllo: consente di stabilire da dove attingere o dove
mettere il valore selezionato nella casella combinata; di solito si
tratta del valore di un campo del recordset associato alla
maschera corrente. Non conviene impostare tale proprietà nel
caso di uso di una casella combinata per la ricerca
• tipo origine Riga: che di solito è tabella/query se i dati dell’elenco
devono arrivare da una tabella/query
• origine Riga: contiene l’indicazione della tabella/query o più
spesso della query SQL per selezionare i valori che finiranno
nella lista della casella combinata
• visibile: indica se il controllo è o meno visibile
• abilitato: stabilisce se l’oggetto può diventare l’oggetto corrente
di una maschera
100
La Mongolfiera
Le Maschere
• bloccato: stabilisce se è possibile modificare i dati contenuti
nell’oggetto
• colonna associata: stabilisce quale è il numero della colonna da cui
prelevare il valore da associare al campo Origine Controllo.
Università degli Studi di Bari
101
Base di Dati
Discorso analogo alle Caselle Combinate si fa per l’oggetto Casella di
riepilogo (list box).
102
La Mongolfiera
I Report (le stampe)
I Report (Le Stampe).
Un report rappresenta uno stampato (di solito nella forma di un
tabulato più o meno elaborato) che consente di evidenziare i dati del
database selezionati e raggruppati in maniera opportuna.
I dati da inserire in un report possono provenire da una tabella o da
una query. A tali dati possono esserne aggiunti altri, generati direttamente
mediante la struttura stessa del report.
Un report può essere creato definendo direttamente la sua struttura
o, più semplicemente, ricorrendo all’autocomposizione. La struttura generata
con l’autocomposizione può essere facilmente modificata per adattarla
alle effettive esigenze dell’utente.
Caratteristica peculiare di un report è quella di essere un oggetto
che potrebbe avere destinatari diversi dall’utente che crea e gestisce il
database; potrebbe anche rappresentare, in un determinato contesto,
l’immagine dell’azienda alla quale i dati si riferiscono. Bisogna, quindi,
curare i dettagli nel layout del report stesso.
Elemento caratterizzante di questo tipo di applicazione in ambiente
Microsoft Access è che i report, nel momento in cui vengono creati, si
basano sui dati forniti dalla tabella di origine dati definita dall’utente, per
cui l’applicazione avrà inizialmente alcuni “record” su cui costruire il
resoconto di stampa ma, se la tabella origine viene modificata,
cancellando, cambiando o addirittura aggiungendo altre informazioni, il
report aggiorna automaticamente il layout di stampa ai nuovi dati.
Questo è un aspetto importante che permette all’utente di ottimizzare il
lavoro evitando di compiere operazioni ridondanti; non ci sarà bisogno,
infatti, di creare nuovamente il report una volta cambiata la tabella
origine, l’aggiornamento verrà eseguito in automatico dall’applicazione.
Detto questo, si deduce che i report possono diventare veri e
propri fascicoli “interattivi”, con una copertina, un’organizzazione
105
Base di dati
specifica dei dati ed una pagina finale o di conclusione; fascicoli
interattivi rispondenti alle esigenze dell’utente che li avrà strutturati
secondo le caratteristiche del proprio lavoro.
106
La Mongolfiera
I Report (Le Stampe)
Costruzione di report semplici (su una sola tabella/query)
Bisogna quindi, arrivati a questo punto, costruire un report relativo,
in questa fase iniziale, ad una sola tabella/query. Per far questo si può
procedere come segue:
• scegliere la voce Report
• selezionare il bottone Nuovo
• selezionare Creazione guidata Report nella successiva finestra di
dialogo; quindi indicare la tabella/query di riferimento e
confermare con Ok.
Nelle successive finestre di dialogo:
• selezionare i campi da inserire nel report (non è necessario
selezionarli tutti) e selezionare Avanti
• viene chiesto all’utente se desidera aggiungere livelli di
gruppo: per un tabulato semplice non bisogna selezionare
nulla ma premere semplicemente il pulsante Avanti
• è possibile scegliere il criterio di ordinamento in base ad un
massimo di 4 campi (in ordine crescente o decrescente);
selezionare gli ordinamenti e confermare con Avanti
• occorre selezionare il layout di stampa: tabulare, verticale (i
campi vengono mostrati in verticale e viene posta una
separazione tra ogni record ed il successivo) o giustificato;
foglio orizzontale o verticale. Selezionare Avanti
• si deve scegliere lo stile di stampa tra quelli proposti:
Formale, Generico, Società, ecc.. Selezionare Avanti
• occorre fornire un nome (titolo) al report e selezionare il
radio button “Modifica la struttura del report” in modo da poter
apportare modifiche alla struttura fin qui definita nella
Università degli Studi di Bari
107
Base di dati
finestra di creazione /modifica dei report. Concludere la
procedura cliccando su Fine.
Nella finestra di creazione/modifica del report è possibile eseguire varie
operazioni, tra cui:
• selezionare un oggetto del report; sono possibili, con le usuali
modalità (uso del tasto SHIFT durante la selezione),
selezioni e quindi manipolazioni di più oggetti
• trascinare gli oggetti o i relativi marker per
spostare/ridimensionare gli oggetti. Il trascinamento si ottiene
tramite il marker in alto a sinistra
• eseguire operazioni tipo taglia/copia/incolla con il menù
Modifica
108
La Mongolfiera
I Report (Le Stampe)
• visualizzare le proprietà dello/degli oggetto/i selezionato/i
ed eventualmente modificarle attraverso una finestra a linguette
(comando Visualizza | Proprietà). La possibilità di accedere alle
proprietà di un oggetto sarà fondamentale per la
programmazione in VBA. Le proprietà sono differenti da
oggetto ad oggetto e sono numerose; quando si vuole
modificare qualche caratteristica di un oggetto è opportuno
controllare se c’è qualche proprietà che si riferisce a quella
caratteristica in modo da poterla modificare
• visualizzare l’elenco dei campi (comando Visualizza | Elenco
campi) per aggiungere altri elementi (dalle tabelle/query
selezionate all’inizio) al report con una operazione di
trascinamento
• inserire oggetti nel report (ad esempio immagini con il comando
Inserisci | Immagine; l’immagine può poi essere portata in
primo o secondo piano, come ogni altro oggetto, con i
comandi Formato | Porta in primo piano o Formato | Porta in
secondo piano).
Costruzione di report su più tabelle/query.
Si vuole adesso costruire un report relativo a più tabelle/query
procedendo, nelle successive finestre, a selezionare:
• la voce Report
• il bottone Nuovo
• ceazione guidata Report nella successiva finestra di dialogo;
confermare con Ok senza selezionare la tabella/query
Università degli Studi di Bari
109
Base di dati
• le tabelle/query (una alla volta) e poi, sotto, i campi da inserire
nel report (non è necessario selezionarli tutti). Selezionare
Avanti
• (può non comparire) il criterio di priorità: visualizzazione in base
a ... (scegliere la tabella/query che guida la visualizzazione):
il resto della struttura del report è guidato dalla struttura
delle relazioni tra le tabelle/query. Ogni scelta nella finestra
di dialogo viene rappresentata con un esempio che mostra la
struttura che verrà generata
• se l’utente vuole aggiungere livelli di gruppo (cioè
raggruppamenti). Per scegliere un nuovo raggruppamento è
sufficiente fornire il campo in base a cui eseguire il raggruppamento.
E’ poi possibile cambiare la priorità di raggruppamento
manovrando sulle frecce apposite. E’ altresì possibile
cambiare la modalità di raggruppamento all’interno della
relativa finestra di dialogo (richiamata con il bottone Opzioni
raggruppamento): conviene di solito lasciare la modalità di
raggruppamento normale (i record si raggruppano a parità di
valore del campo selezionato). Premere il pulsante Avanti
• il criterio di ordinamento in base ad un massimo di 4 campi
(in ordine crescente o decrescente). Nella stessa finestra di
dialogo è presente il bottone Opzioni di riepilogo che consente
di accedere ad una finestra di dialogo nella quale vengono
richiesti, per i campi numerici, se si vuole avere dei
riepiloghi (rispettivamente somma, media, minimo,
massimo) e se si vuole solo il riepilogo o anche il dettaglio; è
pure possibile specificare se si vuole ottenere la percentuale
delle somme di dettaglio sul totale. Uscire dalle opzioni di
riepilogo e selezionare Avanti
110
La Mongolfiera
I Report (Le Stampe)
• il layout di stampa: con rientri, a blocchi, bordato 1, bordato 2,
allineato a sinistra1, allineato a sinistra 2; foglio orizzontale o
verticale. A sinistra è sempre presente una immagine di
come verrà prodotto l’output. Selezionare Avanti
• la scelta dello stile di stampa tra quelli proposti: Società,
Formale, Generico, ecc.. Selezionare Avanti.
• Nella successiva finestra di dialogo è necessario fornire un
nome (titolo) al report e selezionare il radio button “Modifica la
struttura del report” in modo da potere apportare modifiche
alla struttura fin qui definita nella finestra di creazione
/modifica dei report. Selezionare Fine.
A questo punto, si può modificare il report, come già descritto nel
precedente paragrafo, all’interno della finestra di creazione/modifica dei report.
Modifica e cancellazione di report
Per modificare un report è sufficiente selezionarlo nella finestra Report,
premere il bottone Struttura, ed accedere così alla finestra di creazione
/modifica dei report per le modifiche.
Per cancellare un report è sufficiente selezionarlo nella finestra Report e
premere il bottone CANC. Verrà richiesta la conferma dell’operazione.
Utilizzo dei report.
Al fine di operare con un report occorre:
• selezionare la voce Report del database corrente
• selezionare un report dall’elenco
Università degli Studi di Bari
111
Base di dati
• fare click sul bottone Anteprima per accedere all’anteprima
del report selezionato che consente, in maniera del tutto
intuitiva, la visualizzazione del report stesso sullo schermo
112
La Mongolfiera
I Report (Le Stampe)
• Oppure è possibile dare il comando File | Stampa per
stampare il report correntemente selezionato.
Università degli Studi di Bari
113
Base di dati
Per approfondire
considerazioni e suggerimenti su alcuni aspetti emersi durante le prove
E’ stato osservato che quando si aprono alcuni report generati con
la Creazione guidata si possono risolvere alcuni problemi dovuti ad una
impropria composizione del report da parte di Access (“baco”). E’
usualmente possibile sistemare questi problemi entrando in modifica sul
report e cambiando gli elementi scorretti. A titolo di esempio indichiamo
di seguito due problemi emersi e le loro soluzioni.
1. Si verifica un problema sulle intestazioni dei raggruppamenti
(messaggio di richiesta parametro all’atto dell’apertura). Per
risolvere tale problema è sufficiente entrare in modalità
modifica e dare il comando Visualizza | Ordinamento e
raggruppamento; quindi, scegliere nella colonna Campo o
espressione il valore opportuno (dall’elenco a discesa) in modo da
sostituire il valore errato. Può essere sufficiente, per
correggere il valore, aggiungere le parentesi quadre attorno ai nomi
di campo nelle espressioni. E’ possibile, inoltre, fare altre
operazioni di adattamento nella finestra Ordinamento e
raggruppamento.
2. Nel piè pagina di alcuni raggruppamenti non viene inserita
correttamente l’espressione per il conteggio degli elementi (come
risultato si vedono messaggi di errore nel report). Per
risolvere questo problema è sufficiente entrare in modalità
modifica, cercare una espressione analoga a quella errata ma
funzionante, entrare nelle proprietà e copiare la formula
dell’Origine controllo per poi incollarla nelle proprietà (Origine
controllo) dell’elemento errato e quindi riadattarla alla nuova
situazione. Se non si trova una espressione analoga a quella
scorretta (ma che sia funzionante) si ricordi che l’errore
114
La Mongolfiera
I Report (Le Stampe)
avviene di solito su una espressione di “Conteggio(*)” che può
essere costruita ex-novo usando le funzioni opportune
all’interno della proprietà Origine controllo dell’elemento errato
(esempio di espressione da costruire: ="Riepilogo per Codice="
& [Codice] & " (" & Conteggio(*) & " record di dettaglio)").
Costruzione di report contenenti oggetti (Text Box, separazione di pagine...)
All’interno dei report, gli oggetti si usano principalmente per creare
ulteriori elementi di stampa. In questo paragrafo si vuole solo mostrare,
per linee generali, l’uso degli oggetti più significativi quali elementi per
stampare i dati di un database.
Per disporre oggetti su di un report occorre passare in visualizzazione
struttura (si seleziona un report e si preme il bottone Struttura) e quindi
attivare la ToolBox con il comando Visualizza | Casella degli strumenti. Nella
ToolBox potrà convenire lasciare sempre abilitato il bottone per
l’autocomposizione dei controlli (il pulsante con la “bacchetta magica”).
Se bisogna modificare o visualizzare le proprietà di un oggetto lo si
seleziona e si sceglie Proprietà dal menù Visualizza o dal menù di scelta
rapida.
Un report avrà in generale un corpo (che rappresenta la parte più
“interna” del report) “incapsulato” in una serie di coppie intestazione/piè di
sezione (o raggruppamenti). Inoltre in un report ci sono di solito
intestazioni e piè di pagina (di pagina e report). Tenendo conto di questo, di
seguito, per ogni controllo significativo, vengono date alcune indicazioni
su come gestirlo (a livello di proprietà) per le più comuni esigenze. Per
esigenze più sofisticate è sufficiente controllare/gestire anche altre
proprietà oltre a quelle che andiamo ad elencare.
Università degli Studi di Bari
115
Base di dati
N.B. All’interno della finestra di creazione/modifica del report è possibile
visualizzare/modificare i raggruppamenti e gli ordinamenti richiamando la finestra
relativa con il comando Visualizza | Ordinamento e Raggruppamento. All’interno
di questa finestra è anche possibile fare comparire e scomparire le intestazioni ed i piè
pagina dei vari raggruppamenti.
Il primo oggetto di cui conviene occuparsi è sicuramente il report
nel suo complesso. Per selezionare il report basta non selezionare alcun
oggetto. Nella finestra delle proprietà risultano interessanti i seguenti
elementi:
• origine record: si può specificare un tabella, una query o una
query SQL che descrivono i record (le righe) che verranno
visualizzati nei controlli del report. Si può scegliere il
pulsante a destra (quello con “...”) per generare
automaticamente la query per l’origine dei record;
l’ambiente richiamato è quello per la costruzione e la
modifica di query. Estendendo la query SQL che definisce
l’origine dei record con la clausola WHERE è possibile porre
delle condizioni di “filtro” sui record che andranno a far parte
del report (es. ... WHERE [Fatture].[NumFatt] =
[RigheFatt].[NumRiga])
• filtro e applica filtro: con la prima proprietà si può specificare
un filtro per i record che andranno a far parte del report (es.
[NumFatt] = [NumRiga]); in tal caso, la seconda proprietà
deve essere impostata a sì
• intestazione (pagina) e piè pagina (pagina): queste due proprietà
consentono di specificare se e quando non stampare le
eventuali intestazioni di pagina e piè pagina
116
La Mongolfiera
I Report (Le Stampe)
Un altro tipo di oggetto interessante è la sezione (corpo, piè pagina,
intestazione, ...). Basta selezionare la barra relativa alla sezione desiderata
per potere accedere alle sue proprietà (tramite il menù visualizza o il
menù di scelta rapida). Le caratteristiche principali sono:
• interruzione pagina che consente di stabilire se inserire
interruzioni di pagina prima e/o dopo la sezione corrente
del report
• stampa sezione unita che consente (se impostata a sì) di fare in
modo che una sezione non venga spezzata su due pagine
diverse
• visibile: che consente di stabilire se la sezione che interessa
sarà visibile o meno
• aspetto: piatto, in rilievo, incassato.
L’oggetto di sicuro più interessante è il Text Box (detto anche edit
control o casella di testo). Le proprietà più interessanti da gestire (una volta
selezionato l’oggetto) sono:
• nome elemento: è il nome dell’oggetto
• origine controllo: tipicamente si può scegliere uno dei campi
appartenenti al recordset selezionato come origine controllo
del report (il combo box a destra consente appunto questa
selezione). E’ anche possibile costruire espressioni (che
tipicamente combinano i valori dei campi appartenenti al
recordset del report); ad esempio: =Str([NumFatt]) & " del
" & Str([DataFatt]). E’ anche possibile costruire espressioni
per aggregare (es. sommare) valori (di solito nella sezione di
piè di pagina o intestazione di un raggruppamento, della
pagina
o
del
report);
ad
esempio,
=Somma([PrezzoUn]*[Quantità]) oppure: =conteggio(*). La
costruzione di espressioni può essere facilitata dall’uso del
Università degli Studi di Bari
117
Base di dati
generatore di espressioni (pulsante a destra: “...”). Si noti che le
espressioni devono iniziare con il simbolo “=”
• formato: stabilisce il formato dell’oggetto (numero generico,
standard, fisso, valuta, data generica, ...)
• visibile: dice se il controllo è o meno visibile.
Per inserire elementi descrittivi conviene usare l’oggetto etichetta
(label). Proprietà significative sono:
• nome elemento che rappresenta il nome dell’oggetto
• etichetta che è una stringa descrittiva che comparirà sul
report.
118
La Mongolfiera
I Report (Le Stampe)
Costruzione di report a più colonne - cenni.
Vediamo, attraverso un esempio, come costruire report a più colonne,
cioè report che possono disporre i dati anche in colonna oltre che per
righe successive. Il caso tipico è quello che consente di riservare una
colonna per ogni nuovo raggruppamento: nelle righe sottostanti ogni
colonna (che rappresenta il gruppo) ci saranno gli elementi di dettaglio di
quel raggruppamento.
Per costruire un report a più colonne si può procedere come segue:
• costruire un report normale (che abbia almeno un
raggruppamento) con le procedure viste in precedenza
• entrare nella finestra di creazione/modifica dei report
• dare il comando File | Imposta Pagina e Selezionare la
linguetta Colonne
• nel campo Numero di Colonne, selezionare il numero
(massimo) di colonne per pagina per il report multicolonna.
Nel campo Larghezza impostare la larghezza della colonna
(eliminare il check dal box Come Corpo); scegliere la priorità
(di solito Priorità Verticale) e confermare con Ok
• selezionare una intestazione/piè pagina di raggruppamento (se non
è visibile farla comparire all’interno della finestra di
Ordinamento e Raggruppamento - vedi paragrafo precedente), di
solito si sceglie un piè di pagina
• fare comparire l’elenco delle proprietà (Visualizza |
Proprietà)
• nella proprietà Nuova Riga o Colonna selezionare un valore
opportuno, di solito Dopo sezione (se è stato scelto un
“oggetto” piè di pagina).
Università degli Studi di Bari
119