back to top

Guida MS Access

Access è un programma di casa Mictosoft per la gestione di database, ovvero un programma che, nel suo piccolo, fa parte della categoria dei DBMS (Database Management System).

Fa parte del pacchetto Ms Office, ragion per cui esistono diverse versioni del software legate alle edizioni rilasciate di Office; quella che analizzeremo in questa Guida è la versione 2000, per altro molto simile alla versione successiva, XP. Le reali differenze esistono tra le versioni 97 (la precedente) e la 2000; in questo periodo Access ha avuto modo di crescere, potenziarsi nelle prestazioni ed aumentare i suoi ambiti di impiego.

Le differenze tra queste due versioni del DBMS hanno portato delle incompatibilità nella conversione di un database dalla versione meno giovane alla più giovane e viene quindi esplicitamente richiesta la conversione, ma è aumentata la stabilità, il numero di connessioni simultanee da parte di più utenti, e la possibilità di disporre di un file di database che occupi più spazio su disco, praticamente raddoppiata se si pensa che da 1 solo Gb si è passati a ben 2 Gb.

Per quanto il suo utilizzo sul Web sia diffuso ed ormai anche ben supportato, soprattutto nell’interazione con ASP ed ASP.NET, Access non è un DBMS pensato per il Web, bensì per applicazioni Desktop, implementabili con le maschere di Access stesso o con altri linguaggi di casa Microsoft, come il Visual Basic. Ad ogni modo è possibile interfacciarsi ad Access anche in altri ambiti, ad esempio col PHP e con Macromedia Cold Fusion per il Web, con Java, ed altri per la programmazione Desktop.

Concludo dicendo che questa guida fornirà ai lettori le nozioni indispensabili per la costruzione e la gestione di un database, utilizzabile poi sia attraverso un linguaggio di programmazione che attraverso le funzionalità interne di Access.

Buona lettura.

Istallazione

Come già detto, Access fa parte del pacchetto Ms Office, in genere già presente in tutti i Sistemi Operativi Win 95, 98, NT, 2000, XP, ME ecc… quindi è probabile che sul vostro computer sia già presente, in maniera sufficiente per iniziare a fare delle prove. Al fine di avere un database il più affidabile possibile, è consigliabile tuttavia eseguire l’istallazione completa del pacchetto Ms Office, preferibilmente della versione SR-1 o SR-2, ovvero le versioni di Office col Service Pack incorporato.

Se la vostra versione di office non è aggiornata non preoccupatevi… basta andare sul sito windowsupdate di Microsoft e seguire il percorso per l’aggiornamento del pacchetto Office.

Una volta in possesso del CD di istallazione, sarà sufficiente inserirlo nel lettore del vostro computer: al 99% si tratta di un CD autorun, quindi si avvierà da solo… in caso contrario andate su "Risorse del Computer", cliccate sull’unità CD-Rom contenente il CD di installazione e cercate l’iconcina Setup.exe.

Una volta aperta la prima maschera del Wizard di istallazione, sarà sufficiente accettare la licenza di utilizzo, inserire il codice del software e seguire i pochi passi guidati,; attenzione solo quando viene chiesto di eseguire l’installazione Standard o Personalizzata: scegliere la seconda e selezionare l’opzione Esecuzione completa su questo Computer, o qualcosa del genere.

Si consiglia di riavviare il sistema anche se non esplicitamente richiesto.

Una volta riavviato il PC potremo finalmente iniziare ad addentrarci nelle meraviglie di Access…

L’interfaccia

Per acceder al programma al fine di creare un nuovo database, seguite il menu

Start / Programmi / Microsoft Office / Microsoft Access

oppure è probabile trovarlo, semplicemente, in

Start / Programmi / Microsoft Access

Appena aperto il programma vi verrà presentata una maschera che indica di salvare il file; delle tre opzioni

  • Database di Access vuoto
  • Progetti, pagine e creazioni guidate database di Access
  • Apri file esistente

selezionate la prima e salvatelo sul Desktop del vostro computer col nome MioDatabase.mdb dove MioDatabase è il nome del file e .mdb è l’estensione, che sta per Microsoft Database.

Una volta salvato vi si presenterà avanti la seguente maschera

La prima volta che lo aprite vi si presenterà un simpatico docente a forma di spilletta che vi vorrà, a tutti i costi, dare spiegazioni. Non fatevi incantare dal suo aspetto buffo e distruggetelo senza pietà, cliccando sulla voce Nascondi o col tasto destro del mouse sull’omonima voce.

Guardate attentamente l’immagine: è divisa in tre parti: la prima, in alto, chiede di aprire l’oggetto selezionato in modalità visualizzazione dati (Apri), in visualizzazione struttura (Struttura) o di creare un nuovo elemento in base a quello selezionato (Nuovo); la seconda parte, sulla sinistra, permette di accedere a determinate maschere, tra cui Tabelle (selezionata per default), di cui parleremo nel corso della guida; la terza, nello schermo principale a sfondo bianco, permette di effettuare materialmente delle operazioni.

In questa sede ci occuperemo della creazione di una nuova tabella in cui inseriremo dei dati, sia attraverso l’interfaccia grafica (Rif. capitolo 4) che attraverso il linguaggio SQL (Rif. capitolo 8). In seguito creeremo una seconda tabella che sarà messa in relazione alla prima (Rif. capitolo 9).

Vedremo quindi come creare una query (interrogazione o operazione generica sui dati), anche in questo caso sia via interfaccia che tramite codice, ed altre operazioni che è possibile compiere.

Creazione di una tabella

Una tabella è la parte più piccola di un database e rappresenta il reale contenitore di dati. Per crearne una cliccate sulla voce Crea una tabella in visualizzazione Struttuta. Ipotizziamo la gestione di una biblioteca con i suoi libri divisi per categoria.

L’immagine che segue raffigura la creazione della tabella e del suo salvataggio con nome

La tabella è composta da due campi (colonne, contenitori di dati) ovvero id (che sta per identificatore univoco) e nome_categoria, il primo di tipo Contatore, ovvero si incrementa automaticamente di 1 con l’aggiungersi dei record (riga) ed i singoli numeri non si rigenerano una volta cancellato un record, ed il secondo di topo Testo.

Per salvare la tabella cliccate sul floppy e digitate il nome categorie; confermate cliccando su OK e rispondete NO quando vi verrà chiesto se assegnare la chiave primaria.

Adesso vi troverete la tabella appena salvata nella scheda Tabelle, mostrata nella figura del capitolo precedente.

Create adesso la tabella libri con i seguenti campi:

Il campo id (Contatore) è l’identificativo univoco dei record della tabella; il campo rif_categoria (Numerico) è il riferimento all’id della tabella categoria (di tipo Numerico perchè il campo Contatore è di fatto un Numerico); i campi titolo e autore sono di tipo Testo ed il campo descrizione è di tipo Memo, ovvero un tipo di valore testuale che consente l’inserimento di svariate migliaia di caratteri, mente il tipo Testo consente fino a 255 caratteri spazi compresi.

Abbiamo creato la struttura di dati che ci consentirà di implementare i nostri esempi nei capitoli successivi. Al fine di avere dei dati con cui lavorare, vedremo nel capitolo 6 come aggiungere manualmente dei dati all’interno della tabella.

Il capitolo successivo, invece, spiega quali sono tutti i tipi di dati messi a disposizione da Access.

I tipi di dato in Access

Access mette a disposizione i seguenti tipi di dato:

Tipo di dato Descrizione
Testo Accetta caratteri alfanumerici e simboli fino a 255 caratteri spazi compresi
Memo Raccoglie dati di tipo Testo per una lunguezza di gran lunga superiore ad un campo Testo reale
Numerico Per default accetta numeri interi, ma può essere impostato anche su numeri con porzioni decimali
Data/ora Accetta vari formati della data e dell’ora
Valuta Accetta la valuta corrente in base alla lingua del programma. E’ possibile scegliere altre valute scaricando gli aggiornamenti dal sito della Microsoft
Contatore Campo numerico ad incremento automatico di una unità per nuovo record
Si/No Campo booleano, accetta True e False e graficamente è rappresentato da un quadrato nero spuntabile, dove il segno di spunta rappresenta True

E’ di estrema importanza nella creazione e nella gestione di un database specificare i tipi di dato appropriato, dato che alcune operazioni ed alcuni calcoli possono essere compiuti solo se il tipo di dato è corretto.

Se ad esempio ho un campo in cui indico i prezzi dei vari prodotti e voglio ordinarli dal meno costoso al più costoso, dovrò usare un campo di tipo Valuta.

Se voglio reperire dati a cui da riferimento una determinata data dovrò usare un tipo Data/ora.

Se voglio sommare i numeri di un campo, ad esempio 10, 20 e 30 dovrò usare un campo Numerico ed otterrò 60. Se uso un campo Testo otterrò 102030.

Cosi via.

Inserimento manuale di dati

Come anticipato nel capitolo 4, ci occupiamo adesso dell’inserimento di dati nelle tabelle appena create in maniera manuale, ovvero aprendo le tabelle, singolarmente, in modalità immissione dati e non in visualizzazione struttura, ovvero basta fare un doppio click sulla tabella.

Iniziamo con la tabella delle categorie. Inserite i dati come riportato in figura:

Passiamo adesso alla tabella dei libri:

Avrete notato che nel campo rif_categoria non compare il nome della categoria ma l’identificativo, infatti L’amante di Lady Chatterley è un romanzo d’amore ed hai id = 1 nella tabella delle categorie e cosi via.

Inserite qualche altro dato se volete ma non troppi… impareremo ad inserirli via codice nel capitolo 8!

Importazione dati

MS Access consente anche di importare dati da altri file in diversi formati:

  • Access (.mdb)
  • dBASE (.dbf)
  • Excel (.xls)
  • Exchange
  • HTML (.htm e .html)
  • Lorus (.wj)
  • Outlook
  • Paradox (.db)
  • File di testo (.txt, .csv, .tab e .asc)
  • ODBC Database

Per farlo è sufficiente cliccare col tasto destro nell’area di lavoro di Access, nella scheda Tabelle, e selezionare la voce Importa.

Creazione di una query

Il termine query vuol dire letteralmente interrogazione, ma si utilizza per indicare, in modo forse un po troppo generico, le operazioni che è possibile effettuare su una o più tabelle di un database.

Come tutti i DBMS ad interfaccia grafica, Access permette di effettuare operazioni sul database attraverso comandi visuali. Andate nella scheda Query (sotto la scheda Tabelle nella schermata principale) e selezionate la voce Crea una query in visualizzazione Struttura. Vi comparirà una mascherina con l’elenco delle tabelle del database; selezionate la tabella deli libri e cliccate su Aggiungi e poi su Chiudi.

La tabella dei libri comparirà nell’area di lavoro ed al di sotto c’è una griglia in cui costruire l’interrogazione.

Fate doppio click sul campo nome_categoria e questo comparirà nella griglia di lavoro. Sulla barra degli strumenti cliccate sul punto esclamativo rosso scuro per eseguire il comando.

Compariranno i nomi delle categorie inseriti nella tabella categorie. Cliccate ora in alto a sinistra sull’icona raffigurante un righello giallo ed una squadretta con la matita, ovvero il pulsante della visualizzazione struttura e posizionatevi nella griglia di lavoro sulla voce Ordinamento e scegliete Crescente; eseguite di nuovo e… troverete i nomi delle categorie ordinati alfabeticamente.

Tornate alla griglia di lavoro ed andate nel menu

Visualizza / SQL

in modo da vedere il codice che Access ha scritto per voi

SELECT categorie.nome_categoria
FROM categorie
ORDER BY categorie.nome_categoria;

Salviamo la query con nome… chiamatela come volete, non ci serve più. Rimando al prossimo capitolo la spiegazione di questi comandi.

Il linguaggio SQL

Il linguaggio SQL (Structured Query Language) è il linguaggio standard per la manipolazione dei dati di un database e per eseguire interrogazioni strutturate.

Tutti i DBMS parlano in SQL con pochissime differenze grammaticali.

Creare query direttamente con Access può risultare comodo e veloce ed in taluni casi addirittura indispensabile, ad esempio quando si agisce contemporaneamente su 4 o 5 tabelle, ma non è un deterrente sufficiente a non imparare l’SQL ed essere in grado, all’occorrenza, di crearne a mano o di modificare il codice di una query creata via interfaccia grafica.

In SQL si possono creare, modificare e cancellare tabelle e la loro struttura, oppure agire sulle tabelle creando interrogazioni, aggiungendo dati, modificando e/o cancellando dati.

Ci occuperemo della ricerca e dell’inserimento di dati via SQL. Rimando il lettori alla guida di SQL del sito (anch’esso opera mia) all’indirizzo

/sql/guide/guida-sql/

per approfondimenti sul linguaggio.

Nel capitolo precedente abbiamo fatto fugacemente conoscenza con l’istruzione SELECT, utilizzata per la ricerca, più o meno specifica, di dati in una tabella.

Vediamo la sua sintassi base:

SELECT <em>nome_campo</em> FROM <em>nome_tabella</em>

oppure possiamo usare il carattere jolly * al posto di nome_campo per specificare tutti i campi.

Andate nella scheda Query, create una nuova query e chiudete la mascherina con l’elenco delle tabelle senza selezionarne nessuna. Cliccate sulla voce SQL in alto a sinistra in modo da posizionarvi nell’editor SQL di Access.

Scrivete:

SELECT * FROM libri WHERE autore = 'D. de Foe'

ed eseguite cliccando il punto esclamativo. Vi verranno restituiti tutti i libri scritti da questo autore.

Proviamo adesso ad inserire un nuovo libro via SQL. La sintassi base dell’istruzione INSERT INTO è la seguente:

INSERT INTO <em>nome_tabella</em>
(<em>campo_1</em>, <em>campo_2</em>)
VALUES
('<em>valore_1</em>', '<em>valore_2</em>')

Sono andato a capo per questioni di spazio ma è possibile scrivere il codice su di una sola riga.

Inseriamo quindi un nuovo libro. Eseguite il seguente codice nell’editor SQL di Access:

INSERT INTO libri
(rif_categoria, titolo, descrizione, autore)
VALUES
(5, 'Robinson Crusoe', 'Bellissimo!', 'D. de Foe')

Confermate l’inserimento del record appena vi verrà richiesto.

Come vedete non abbiamo specificato il campo id perchè è un Contatore e si incrementa automaticamente.

Relazionare due tabelle

Nel capitolo 4 abbiamo creato due tabelle ed abbiamo già visto secondo quale criterio sono state strutturate al fine di essere messe in relazione tra loro.

Col termine relazione si intende appunto legare due o più tabelle in modo da fornire un risultato unico in funzione di una interrogazione volta a più parti, secondo il principio umano del lavoro di squadra, dove i membri della squadra sono le tabelle.

Abbiamo creato una tabella separata per le categorie per non dover ripetere N volte il nome della categoria, evitando quindi la ridondanza dei dati. Per essere ancora più precisi avremmo potuto creare una tabella separata anche per gli autori, ma sarebbe stato un lavoro troppo oneroso per chi è alle primissime armi.

Alla fine del capitolo, comunque, vi mostrerò la struttura relazionale del database con le tabelle delle categorie, degli autori e dei libri.

Il tipo di relazione che intercorre tra la tabella delle categorie e quella dei libri, secondo le strutture definite nel capitolo 4, è di uno a molti ovvero ad una categoria possono corrispondere più libri e non viceversa.

Vediamo come si fa in Access a creare una relazione. Accedete alla scheda delle Query ed una volta che la maschera iniziale vi chiederà di aggiungere una tabella, selezionatele entrambe, aggiungetele e chiudete la maschera.

Cliccate poi col tasto sinistro del mous sul campo id della tabella delle categorie e, senza lasciare il mouse, trascinate fino al campo rif_categoria della tabella dei libri. Otterrete il risultato mostrato nell’immagine seguente:

Andate adesso nel menu

Visualizza / SQL

per vedere cosa ha scritto Access per noi

SELECT
FROM categorie INNER JOIN libri
ON categorie.id = libri.rif_categoria;

Se notate mancano i nomi dei campi tra le istruzioni SELECT e FROM per il motivo che non li abbiamo esplicitamente specificati in fase di costruzione visuale… a questo serve conoscere l’SQL (a questa questa pagina potete trovare la guida al linguaggio SQL).

in cui troverete un capitolo che spiega come costruire relazioni via codice. Intanto modifichiamo a mano la query aggiungendo un asterisco (*) tra i comandi SELECT e FROM in modo da specificare tutti i campi

SELECT <strong>*</strong>
FROM categorie INNER JOIN libri
ON categorie.id = libri.rif_categoria;

Attenzione: le due tabelle contengono il campo id quindi per specificare il campo dell’una o dell’altra si utilizza la forma

<em>nome_tabella</em>.<em>nome_campo</em>

quindi

categorie.id

per la tabella delle categorie e

libri.id

per la tabella dei libri.

Salvate la query col nome relazione.

Le stored query

Le stored query sono query scritte e salvate direttamente su Access che possono essere richiamate via codice da altre interfacce come ASP, ASP.NET e Visual Basic.

Il supporto alle stored query inizia dalla versione 2000 di Access: se salvate una query su una versione 97 e provate ad utilizzarla, ad esempio, da una pagina Web scritta in ASP, riceverete un errore; con 2000 questo non avverrà.

Salvare una query su Access non vuol dire aver creato una stored query: la stored query, al contrario delle stored procedures di Microsoft SQL Server, non sono delle vere procedure ma delle semplici query che possono essere richiamate.

Quest’affermazione è vera ma c’è un particolare: è possibile parametrizzare le query in modo da definirle su Access e passare i nomi o i valori dei campi in via programmatica.

Un esempio chiarirà le idee.

Salvate questa query di inserimento su Access:

INSERT INTO libri
(rif_categoria, titolo, descrizione, autore)
VALUES
(<strong>?</strong>, <strong>?</strong>, <strong>?</strong>, <strong>?</strong>)

Il carattere punto interrogativo (?) rappresenta il parametro, ovvero che cosa dovrà essere inserito nella tabella, valore passato in via programmatica. Salvate la query col nome ins_lib (ovvero inserimento libro).

Il codice che segue è un frammento valido sia per ASP che per ASP.NET che per Visual Basic; il suo scopo è quello di utilizzare la query parametrizzata su Access e di valorizzarla in via programmatica:

cn.Execute("<strong>ins_lib</strong>" & 3, 'Frankenstein', 'Bello!', 'M. Shelley')

Abbiamo quindi sostituito i quattro punti interrogativi con i valori da inserire nella tabella dei libri.

Manutenzione del database

Access ha il brutto vizio di crescere a dismisura, in termini di spazio occupato su disco, non appena si effettuano poche e semplici operazioni.

Un file di Access 2000 appena salvato occupa circa un centinaio di Kb e basta creare una tabella ed inserire pochi dati per trovarlo circa a 200 Kb.

Immaginate quindi la mole di spezio che occupi un database con una decina di tabelle che vengono usate in continuazione dagli utenti che effettuano ricerche, inserimenti, modifiche e cancellazione di dati… siamo nell’ordine dei 5 o dei 7 Mb… non è molto, ok, ma perchè sprecare spazio e risorse?

Access mette a disposizione una funzine per compattare il database, in modo da ottimizzare lo spazio su disco e da migliorarne le prestazioni, semplicemente utilizzando il menu

Strumenti / Utilità database / Compatta e ripristina database...

Protezione del database con password

Access è l’unico DBMS che crea file di database piuttosto che strutture di database gestite stesso dal DBMS, al contrario di suoi colleghi senior come Ms SQL Server, MySQL, Oracle ed altri.

Ciò vuol dire che il file può essere aperto in modalità file da qualsiasi computer, una volta scaricato, semplicemente disponendo di una copia del programma Access… cosa davvero frequente su qualsiasi PC Windows.

Ciò vuol dire anche una grave pecca in termini di sicurezza.

E’ possibile però impostare una password all’apertura del file seguendo una semplice procedura.

Aprire una nuova copia di Access, scegliere il file di database da proteggere con password selezionandolo da menu

File / Apri

ma non bisogna cliccare su Apri nella finestra di dialogo, bensì sulla freccetta sulla sua destra; selezionare dall’elenco la voce

Apertura esclusiva

Accedere poi al menu

Strumenti / Pritezione / Imposta password database

Scegliere la password e confermare. Alla prossima apertura del file vi verrà domandata la password.

Attenzione: non la dimenticate oppure sappiate che è impossibile recuperare la password da un luogo differente dalla vostra memoria umana!

Altri contenuti interessanti

Pubblicità

Leggi anche...

Come ottenere l’ID dell’ultimo record inserito in MySQL, PostgreSQL, SQL Server e Oracle?

Ottenere l'ID dell'ultimo record inserito in una tabella, dopo...

Database completo regioni, province e comuni italiani (in formato SQL)

Quando si sviluppa un sito web o un'applicazione in...

File CSV: cosa sono, come si aprono e come crearli

In questo articolo cercheremo di capire cos'è il formato...

Confrontare due tabelle e trovare i record senza corrispondenza

all'interno di un database relazionale può essere utile poter...

Eseguire comandi SQL online con SQL Fiddle

Sì. E' possibile testare codice SQL senza aver installato...

SQL: Calcolare la media dei valori di più campi

Attraverso una semplice query SQL è possibile calcolare dinamicamente...
Pubblicità