Sei sulla pagina 1di 20

GESTIAMO LA 

BIBLIOTECA CON ACCESS
SCRITTO DA  MASSIMILIANO PASQUALONI .

Valutazione attuale: 5 / 5

valuta 5 Valutazione
Valuta             

Approfitto di una richiesta di Pascal per dare un'occhiata a cosa possiamo fare
con MS  Access..

Riporto parte della mail:

"Ciao, mi puoi aiutare consigliandomi come usare  ACCESS  per realizzare una  biblioteca, per
registrare cioè tutti i libri che ho in casa ? Li vorrei suddividere
per  tipo  (di  lettura,  scolastico, enciclopedie, collane,...) ed ovviamente completandoli con
Titolo,  Autore, ecc.."

Strutturiamo il dataBase.

E' vero che stiamo facendo un'applicazione per uso domestico, che quindi non verrà mai
portata sotto stress, però l'adozione di soluzioni semplicistiche, come ad esempio, l'uso di
una sola ed unica tabella, mi sembra decisamente limitativo, poco professionale e,
soprattutto, non utile all'apprendimento.

Per questo ho deciso di strutturare il data Base in maniera più complessa, facendo uso di
più tabelle relazionate tra loro.

Tale struttura poi potrà essere usata con dB più "seri" come, ad esempio, MySQL ed
integrata via web con php, reggendo carichi di lavoro decisamente più impegnativi che
quelli domestici.

Nella mail viene richiesto esplicitamente che la suddivisione dei libri dovrà essere
"per tipo (di lettura, scolastico, enciclopedie, collane,...) ed ovviamente completandoli
con Titolo, Autore, ecc.."

 
Ho deciso quindi di creare una tabella per l'anagrafica dell'autore, una per la lista delle
case editrici, una per i dettagli del libro, una per il genere, una per il tipo ed una per
l'edizione, collegate tutte da una tabella riassuntiva.

Vediamo di analizzare meglio il database..

Per prima cosa generiamo una tabella dedicata all'autore che


chiameremo ANA_AUTORE (oggi sprizzo fantasia a tutto spiano! ).

Fig.1 - Struttura Tabella ANA_AUTORE

In questa tabella troveranno posto i campi

 ID_AUTORE come chiave primaria. Rappresenta la chiave univoca per la ricerca


dell'autore. Creiamo una chiave primaria come numero auto incrementante ed univoco
che ci consentirà di distinguere un autore da tutti gli altri, anche in caso di omonimia.
 NOME_AUTORE che conterrà il nome di battesimo.
 COGNOME_AUTORE che conterrà il nome di cognome.
 BIOGRAFIA che conterrà una breve nota biografica dell'autore.

Per creare una chiava primaria nella struttura della tabella, selezionare la colonna che
conterrà la chiave, nel caso delle anagrafiche tutte le prime colonne saranno chiave
primaria ed il nome inizierà per tutte con ID_. Una volta selezionata la colonna,
specifichiamo il tipo dati Contatore e clicchiamo sul pulsante Chiave Primaria nella barra
degli strumenti di Access.

Fig.2 - Creiamo una chiave primaria

Stessa cosa per l'editore. Creiamo una tabella ANA_EDITORIche conterrà i campi

 ID_EDITORE come chiave primaria.


 NOME_EDITORE

 
Fig.3 - Struttura Tabella ANA_EDITORI

Questa volta non abbiamo bisogno di altri campi, anche se volendo possiamo
aggiungerne quanti vogliamo, come ad esempio una nota biografica, le collane pubblicate
e altro ancora.

Creiamo una tabella ANA_TIPO con i campi

 ID_TIPO come chiave primaria.


 DESCRIZIONE_TIPO

Fig.4 - Struttura tabella ANA_TIPO

Questa tabella conterrà il tipo del libro, come da specifica richiesta, ad esempio


"di lettura, scolastico, enciclopedie, collane" etc..

Creiamo una tabella ANA_EDIZIONE con i campi

 ID_EDIZIONE come chiave primaria.


 DESC_EDIZIONE

Fig.5 - Struttura tabella ANA_EDIZIONE

Questa tabella conterrà il tipo di edizione del libro ad esempio se è una edizione


economica, una pocket, un tascabile, un cartonato, un rilegato, con sovracopertina o
senza, etc, etc..

Creiamo una tabella ANA_GENERE con i campi


 ID_ GENERE come chiave primaria.
 DESC_ GENERE

Fig.6 - Struttura tabella ANA_GENERE

A questo punto le schede contenti le anagrafiche riutilizzabili in tutti i libri sono pronte.

Non ci resta che creare le ultime due tabelle, quella contenente le schede dei libri e quella
contenente la lista di tutti i libri presenti in biblioteca.

Creiamo la tabella SCHEDE con i seguenti campi:

 ID_SCHEDA come chiave primaria che contiene l'identificativo della scheda.


 ID_EDIZIONE riporta l'identificativo dell'edizione del libro.
 NO_PAG è il numero delle pagine del libro.
 ID_GENERE riporta l'identificativo del genere del libro.
 RIASSUNTO è un breve riassunto del libro.
 NOTE che conterrà eventuali note che possiamo aggiungere come, ad esempio se
il libro è stato prestato a qualcuno, o se ci è piaciuto, o altre info.

Fig.7 - Struttura tabella SCHEDE

Quindi creiamo l'ultima tabella ANA_ BIBILIOTECA che conterrà i seguenti campi:


 

 ID_BOOK come chiave primaria che è l'identificativo univoco del libro.


 TITOLO è il titolo del libro.
 ID_AUTORE riporta l'identificativo dell'autore.
 ID_EDITORE riporta l'identificativo dell'editore.
 ID_SCHEDA indica quale scheda è associata al libero.
 ID_TIPO riporta l'identificativo del tipo.

 
Fig.8 - Struttura tabella ANA_BIBLIOTECA

A questo punto abbiamo finito di creare le tabelle, non rimane altro che creare le
correlazioni che esistono tra le varie tabelle.
 

Creiamo le Relazioni tra le tabelle.

Questa fase ci consente di avere un database che anche se messo sotto stress


risponderà sempre in modo impeccabile (access permettendo s'intende!). In pratica
dobbiamo associare ad un libro il suo autore, il suo editore, il suo genere e così via.

Per far ciò ci occorre cliccare sul pulsante Relazioni nella barra dei menù di Access.

Fig.9 - Genera Relazioni

Cliccato questo pulsante si aprirà una finestra che ci consentirà di selezionare le tabelle
appena create.

Fig 10. - Aggiungi Tabelle per le Relazioni


Selezioniamo tutte le tabelle e clicchiamo sul pulsante Aggiungi.

A questo punto avremo la vista di tutte le tabelle del dB aperte in una finestra.

Fig.11 - Lista Tabelle da Relazionare

Prendiamo la tabella ANA_BIBILIOTECA ed affianchiamola alla tabella ANA_AUTORE.

La relazione che esiste tra le due tabelle è il campo ID_AUTORE, presente in entrambe.

Per stabilire una relazione tra le due tabelle ci basta cliccare sul campo ID_AUTORE della


tabella ANA_BIBILIOTECA e trascinarlo sul campo omonimo della tabella ANA_AUTORE.

A questo punto si aprirà la finestra della Modifica Relazioni.

Fig.12 - aggiunta di una Nuova Relazione

Clicchiamo sul tipo di join.

Il join è il tipo di relazione che vogliamo stabilire.

 
Ce ne sono di tre tipi ed, a seconda di quello che scegliamo, possiamo ottenere dei
risultati diversi sulle interrogazioni al database.

 Il Join di tipo 1 include solo le righe in cui i campi collegati da entrambe le


tabelle sono uguali.
Ovvero, se ho inserito un libro e non ho scritto ancora la scheda dell'autore, questo
libro non verrà visualizzato nella lista dei libri finché non compilerò la scheda
dell'autore.
 Il Join di tipo 2 include tutti i record della tabella ANA_AUTORE e solo quelli della
tabella ANA_BIBILIOTECA in cui i campi collegati sono uguali.
Ovvero, se ho schedato tutti gli autori ma non ho inserito ancora i libri,
nell'interrogazione al database vedrò una lista di libri con relativo autore mischiati ad
una lista vuota contente solo il nome dell'autore.
 Il join di tipo 3 è il join che fa al caso nostro, include tutti i record
di ANA_BIBILIOTECA e solo quelli della tabella ANA_AUTORE in cui i campi collegati
sono uguali.
Quindi ci da la possibilità di vedere, come risultato di una interrogazione del database,
tutti i libri inseriti, anche quelli che non hanno una scheda autore associata.

Fig.13 - Seleziona il Tipo Join

Ripetiamo l'operazione per creare la relazione tra la tabella ANA_BIBILIOTECA e le


tabelle ANA_EDITORI, ANA_TIPO, e SCHEDE tutte con join di tipo 3.

Una volta completate le relazioni della tabella ANA_BIBILIOTECA passiamo a quelle della


tabella SCHEDE.

Clicchiamo sulla tabella SCHEDE e, come per la tabella ANA_BIBILIOTECA, creiamo la


relazione con le tabelle ANA_EDIZIONE ed ANA_GENERE, sempre con join di tipo 3.

Al termine dovremmo avere una vista delle relazioni come quelle in figura 14.

 
Fig.14 - Vista Relazioni

Usiamo le Maschere per gestire i dati.


 
 
Una volta creato il dB, occorre creare le maschere per l'inserimento dei dati nelle tabelle.
Per il corretto funzionamento del dB non è indispensabile questo passaggio, visto che è
possibile gestire i dati direttamente dalle tabelle, ma è consigliato per dare un aspetto più
professionale e più "ergonomico" al nostro lavoro.
Per prima cosa occorre creare le maschere per le tabelle di anagrafica.
Tali maschere dovranno consentirci la navigazione e le operazioni di amministrazione
all'interno dei record.
Per creare una maschera andiamo nel menù Maschere del database e facciamo click
su Crea una maschera mediante una creazione guidata.
A questo punto parte il wizard che ci accompagnerà nella creazione della maschera.
La prima informazione da passare al wizard è da quale tabella intendiamo prendere
i dati e quali campi vogliamo mostrare.

Selezioniamo Tabella: ANA_AUTORE nel menù Tabelle/query e clicchiamo sul


pulsante >> per includere tutti i campi.

Fig.15 - Seleziona Campi Maschera

Cliccando su Avanti il wizard richiederà di specificare il tipo di layout da applicare alla


maschera. Il Giustificato è quello che soddisfa le nostre esigenze grafiche. La scelta del
layout, così come la seguente selezione dello stile, non hanno nessuna ripercussione sul
funzionamento del dB, quindi è possibile scegliere quello che più si avvicina ai nostri gusti.

 
Fig.16 - Seleziona Layout

Cliccando su Avanti possiamo, come già menzionato, scegliere lo stile da utilizzare. Per


l'esempio ho utilizzato lo stile Spedizione.

Fig.17 - Seleziona Style

Clicchiamo su Avanti ed impostiamo un nome alla maschera. Per convenzione ho messo


una M_ davanti al nome della tabella di origine dati. Consiglio sempre di adottare delle
convenzioni nei nomi degli oggetti, magari in questo esempio non occorre, ma quando ci
troviamo a gestire un numero elevato di maschere, tabelle e query è sempre buona
norma usare una nomenclatura che indichi all'istante a cosa ci stiamo riferendo.

Fig.18 - Seleziona Titolo

Cliccando su Fine il wizard si chiude e si apre la maschera appena creata.

Fig.19 - Maschera

Risulta un po' spoglia, dovremmo arricchirla con qualche elemento aggiuntivo.


 
 

Chiudiamo la maschera e selezioniamo con un click nell'elenco


delle maschere disponibili.
Clicchiamo quindi sul pulsante Struttura per modificare la struttura della maschera.
Proviamo a disporre i campi a nostro piacimento, ad inserire un titolo alla maschera, ad
inserire in piè di pagina il suggerimento per la navigazione dei record.

Fig.20 - Personalizziamo la Maschera

Possiamo anche disabilitare il controllo di alcuni campi. Ad esempio l'ID_AUTORE viene


generato automaticamente dal dB e sarebbe il caso che l'utente non abbia la possibilità di
modificare manualmente questo campo.
Per far questo facciamo doppio click sul campo che vogliamo disattivare. Si aprirà la
casella delle proprietà relative alla Casella di Testo ID_AUTORE. Nella
scheda Dati impostiamo Abilitato a No. La casella ID_AUTORE diventerà grigia e
potremo solo visualizzare il contenuto senza poter modificarlo.

Fig.21 - Disabilitiamo un Campo

Aggiungiamo ora qualche pulsante di comando.


Sempre utilizzando i wizard messi a disposizione da access possiamo inserire tutti i
comandi che vogliamo con pochi click di mouse.
Sconsiglio di creare i pulsanti per la navigazione all'interno dei record, sono già presenti
nella status bar della finestra della maschera, rischiamo di avere comandi ridondati.
Meglio concentrarci sulle operazioni sui record, come, ad esempio, la creazione, la
modifica e la cancellazione.
Per creare un'operazione sui record clicchiamo nella barra degli strumenti,
sull'icona Pulsante di Comando.

Fig.22 - Aggiungi Comando

Partirà il wizard Creazione Guidata Pulsante di Comando.


Selezioniamo dal menù Operazioni su record, quindi clicchiamo sul comando
desiderato. Nell'esempio ho inserito i comandi Aggiungi Nuovo Record, Annulla
record, Salva Record ed Elimina Record.

Fig.23 - Aggiungi Comando

Cliccando su Avanti possiamo scegliere se visualizzare un testo all'interno del pulsante o


se assegnare un'immagine significativa, selezionabile tra quelle disponibili in access o da
un file esterno.
Cliccando di nuovo su Avanti ci verrà chiesto di inserire il nome del comando. Diamo un
nome significativo e clicchiamo su Fine.

A questo punto il pulsante è creato, ripetiamo l'operazione per tutti i comandi che
vogliamo inserire.

Quando la maschera ha un aspetto che ci soddisfa, salviamola e ripetiamo gli stessi


passaggi per creare le altre maschere per le tabelle anagrafiche.
Fig.24 - Maschera Completa

Dovremmo ottenere una serie di maschere come mostrato in figura 25.

Fig.25 - Tutte le Maschere


A questo punto siamo pronti per creare la maschera principale, quella della
visualizzazione dei libri. Questa maschera è un poco più complessa delle altre perché
deve mostrare le informazioni che si trovano su più tabelle.
 
 

Vediamo in ordine come creare la maschera.


 

Per prima cosa occorre creare una visualizzazione standard. Facciamo quindi partire il
wizard per la creazione della maschera e selezioniamo la tabella ANA_BIBILOTECA ed
inseriamo tutti i campi della tabella.

Fig.26 - Selezioniamo i campi

Come visibile in fig. 27 la maschera che abbiamo generato è incompleta e le informazioni


che sono mostrate non sono significative.

Fig.27- la maschera Standard

Occorre modificarla in visualizzazione struttura per aggiungere nuovi componenti e per


renderla esteticamente più accattivante.
Fig.28 - visualizzazione struttura

Per prima cosa occorre recuperare i dati dalla tabella SCHEDE. Per aggiungere nuovi


campi all'interno della maschera facciamo doppio click all'interno del quadratino in alto a
sinistra nella finestra della visualizzazione della struttura della maschera.
N.B. se si ha un office dal 2007 in poi, il quadratino non è visibile, si può entrare
nella visualizzazione premendo il tasto F4.

Fig.29 - doppio click per le proprietà o F4

Si apre il pannello delle proprietà della maschera, selezioniamo la scheda Dati e


clicchiamo sul pulsante ... al lato di Origine record.

Fig.30 - origine dati

Una volta aperto l'editor delle query selezioniamo la tabella SCHEDE e facciamo doppio


click su ogni campo della scheda per aggiungerlo alla maschera. Possiamo mettere il
segno di spunta sulla visualizzazione di tutti i campi ID, ad eccezione dell'ID_BOOK.

Fig.31 - l'editor della query

Vediamo come procedere all'inserimento delle Caselle Combinate. Queste caselle ci


aiuteranno ad associare al libro le informazioni che sono presenti nelle altre tabelle,
semplicemente scegliendole da un menù a tendina. In pratica se vogliamo specificare
l'autore del libro, invece di scrivere l'ID_AUTORE dentro il campo, cosa alquanto
antipatica e difficoltosa, lo faremo scrivere direttamente ad access in base alla scelta che
opteremo all'interno della lista degli autori presenti nel dB.

 
Il procedimento che stiamo per vedere può essere ripetuto per tutte le caselle combinate
che andremo ad inserire all'interno della maschera.

Per prima cosa occorre selezionare dal pannello degli strumenti l'oggetto Casella
Combinata.

Fig.32 - inseriamo una casella combinata

Ci verrà richiesto da quale tipo di oggetto verranno prelevati i dati, selezioniamo le


tabelle.

Fig.33 - ricerca da tabella

Scegliamo la tabella ANA_AUTORI

Fig.34 - scegliamo la tabella

ed inseriamo tutti i campi come mostrato in figura.

Fig.35 - inseriamo tutti i campi


Nella schermata successiva il wizard ci mostrerà come sarà visualizzata la tendina
dei dati all'interno della casella combinata.

Fig.36 - anteprima

Specifichiamo il nome del campo che sarà visualizzato nell'etichetta di testo che


accompagnerà la casella combinata all'interno della maschera.

Fig.37- specifichiamo il nome del campo

A questo punto la casella combinata è completa. Occorre però fare qualche altra
operazione per crearla come diciamo noi, perché siamo pignoli e le cose standard non
tanto ci piacciono!

Fig.38 - la casella combinata

Deselezioniamo la casella combinata e facciamoci doppio click sopra, in questo modo si


aprirà il pannello delle proprietà del componente.

Fig.39 - pannello proprietà

Per prima cosa dobbiamo associare il controllo ad un campo. Questo creerà


una relazione tra il controllo della maschera ed un campo nella tabella. Al variare di uno
varierà anche l'altro.
 
 
 
Per far questa associazione selezioniamo ID_AUTORE nella scheda Dati, Origine
Controllo

Fig.40 - associazione campo

Sempre nella stessa scheda occorre modificare la QUERY, in pratica quel che faremo ora
sarà unire due campi in uno, per facilitare la lettura dei dati nella maschera.
Il componente Casella Combinata può visualizzare solo un campo all'interno del
controllo. Se non modifichiamo la QUERY ma lasciamo che i campi nella tendina siano
due, vedremo nella casella solo il primo campo, nel nostro caso solo il nome dell'autore.
Per evitare questo uniamo i campi NOME_AUTORE e COGNOME_AUTORE in un
solo campo che chiameremo AUTORE.

Per far questo modifichiamo la query nel campo Origine Riga da

SELECT [ANA_AUTORE].[ID_AUTORE], [ANA_AUTORE].[NOME_AUTORE],


[ANA_AUTORE].[COGNOME_AUTORE] FROM [ANA_AUTORE]

SELECT [ANA_AUTORE].[ID_AUTORE], ([ANA_AUTORE].[NOME_AUTORE]& " " &


[ANA_AUTORE].[COGNOME_AUTORE] ) AS AUTORE FROM [ANA_AUTORE]

come mostrato in fig. 41.

Fig.41 - Cambiamo la QUERY

spostiamo ora nella scheda Formato ed impostiamo a due il numero delle colonne da


considerare, di cui una sarà ID_AUTORE che NON verrà visualizzato nella scheda ma
inserito nella tabella, l'altro sarà il campo fittizio che è l'unione dei due campi che ci
interessano.

Fig.42 - consideriamo due colonne


Possiamo chiudere il pannello delle proprietà tornando alla visualizzazione della struttura.

Fig.43 - casella personalizzata

A questo punto la casella combinata è stata personalizzata.


Se abbiamo fatto tutto correttamente dovremmo poter vedere, una volta lanciata la
maschera, una lista come quella visibile in fig. 44

Fig.44 - casella personalizzata

Per completare la maschera dobbiamo ripetere le stesse operazioni per creare le caselle
combinate per i campi Tipo e Genere.

Logicamente essendo una sola colonna che ci interessa per questi due campi non
abbiamo bisogno di modificare la query ne di modificare il numero di colonne
interessate, ci dobbiamo solo limitare a prendere il campo che ci interessa
dalla tabella desiderata e poi di associarlo al campo corretto.

Fig.45 - la maschera completata

 
 
Creiamo una Maschera per la navigazione nel dataBase.

 
Per facilitarci la navigazione all'interno delle maschere occorre creare una maschera
principale da cui poter selezionare l'operazione desiderata.

Per far questo andiamo nella gestione delle maschere e creiamo una nuova maschera in
visualizzazione struttura.
Fig.46 - la nuova maschera

All'interno della maschera posizioniamo un pulsante di comando che esegua l'apertura


della maschera.

Fig.47 - operazioni su maschera

Selezioniamo una maschera e clicchiamo su avanti

Fig.48 - selezioniamo la maschera

Selezioniamo Apri la maschera e visualizza tutti i record.

Fig.49 - tipo operazione

Possiamo scegliere se visualizzare un'icona o una scritta descrittiva.

Fig.50 - selezioniamo una icona


Creiamo un pulsante per ogni maschera in modo di avere la possibilità di operare su
qualsiasi maschera, proprio come in un pannellino di controllo.

Fig.51 - la maschera completata

Con la stessa tecnica creiamo un pulsante di chiusura maschera su ogni maschera del dB
per poter così ritornare nella maschera principale ogni volta che abbiamo concluso la
sessione di lavoro nella tabella specifica.
 

Impostiamo la maschera in esecuzione all'avvio del dB.

Possiamo costringere Access ad eseguire automaticamente all'avvio la maschera


principale per la navigazione tra le maschere, nascondendo tutti i menù. In questo modo
possiamo dare un aspetto più professionale ad dB ed evitare di fare delle modifiche
accidentali.

Per eseguire la maschera all'avvio clicchiamo sul menù Strumenti e poi su Avvio...

Nella finestra che appare andiamo a selezionare la maschera principale e deselezioniamo


tutti i flag delle varie opzioni, per far partire access con lo stretto indispensabile.

Fig.52 - impostiamo la maschera in partenza

A questo punto il dB è pronto, non rimane che usarlo!

Fig.53 - il dB comletato in esecuzione

N.B. ho cercato di creare un dB facile da realizzare e da usare, affinché chiunque sia a


digiuno di Access con questo tutorial possa impararne i fondamenti. Questo file quindi,
per quanto possa esser ben progettato, non rappresenta un'applicazione ottimizzata, ma
solo un piccolo dB per uso casalingo. Access, così come tutti gli altri programmi della
suite Office, consente di ottenere ottimi risultati, a patto che ci si addentri nella
programmazione VBA, che ho deliberatamente ignorato per i motivi illustrati sopra. Spero
che qualche lettore, con un po' di tempo a disposizione e con tanta voglia di imparare,
possa partire da questa base e apportare nuove funzioni e migliorie, magari
condividendo la sua esperienza con noi!

   INDIETRO
 AVANTI  

Potrebbero piacerti anche