Ogni applicazione gestionale si basa sull’utilizzo di database, file in grado di memorizzare una vasta mole di informazioni. In questa lezione spieghiamo cosa sono i database, come si creano e in che modo è possibile accedervi.
Abbiamo già avuto modo, nelle precedenti lezioni, di spiegare che cosa sono i database.
Il lettore che non conosce nulla in merito, può immaginarsi un database come un archivio destinato ad accogliere un’enorme mole di informazioni. Ciascuna cartellina che inseriremo nel nostro grande archivio (database) sarà denominata record, ed ogni record potrà contenere vari campi.
L’elenco telefonico può essere considerato un grande database, ogni abbonato elencato costituisce un record; il cognome e nome dell’abbonato, il suo indirizzo e il numero telefonico sono detti campi.
Esistono diversi tipi di database. Certamente avrete sentito parlare di Microsoft Access, si tratta di un software facente parte del pacchetto Microsoft Office che permette di creare e modificare database.
Visual Basic fornisce tutti gli strumenti per intervenire sui database di Access e non solo. È possibile infatti interagire anche con database creati con Paradox, Dbase ed altri.
Il modo più semplice per leggere e modificare le informazioni contenute all’interno dei database è il controllo Datacontrol di Visual Basic: esso consente di eseguire le operazioni fondamentali ed è di utilizzo pressoché immediato. Introduciamo quindi dapprima l’uso del Datacontrol per poi analizzare tutti i vantaggi offerti da soluzioni un pò più complesse ma spesso più indicate.
In tutti gli esempi faremo uso di database di tipo Access.
Per prima cosa creiamo un database di prova con Access.
Quando si utilizza un database come Access i dati contenuti al suo interno sono sempre organizzati sotto forma di tabelle. Ogni tabella è una sorta di cassetto contenente esclusivamente informazioni di un certo tipo.
Supponiamo di aver una piccola attività di commercio e si desideri tenere sotto controllo gli ordini dei nostri prodotti che giungono quotidianamente.
Non è possibile certo affidarsi ai fogli di carta quando la mole delle informazioni da classificare e ricercare diventa notevole. Ci orientiamo quindi sull’uso di un database creato con Access.
Facciamo quindi mente locale sulle tabelle che ci occorrono. Volendo gestire le ordinazioni abbiamo bisogno di almeno tre differenti tabelle: una per la gestione dei clienti, un’altra contenente la lista dei prodotti commercializzati, un’altra ancora per la memorizzazione degli ordini veri e propri.
Un errore gravissimo sarebbe stato quello di voler pretendere di inserire tutte le informazioni in un’unica tabella. Come regola basilare è bene quindi ricordarsi di utilizzare una tabella per ogni tipo di informazione che si desidera elaborare.
È facile intuire come ogni tabella debba essere collegata alle altre: tali collegamenti si chiamano relazioni.
Creazione del database
Avviamo Access quindi creiamo un database vuoto: ci sarà richiesto di specificare la cartella all’interno della quale si desidera che tale database venga memorizzato. Create una cartella all’interno della quale salverete sia il database sia il progetto Visual Basic che successivamente andremo a creare.
Denominate il database azienda.mdb quindi premete il pulsante OK.
Una volta creato il database sarà necessario definirne la struttura interna. Provvederemo ad inserire le tre tabelle clienti, prodotti ed ordini: fate clic sul pulsante Nuovo, selezionate l’opzione Visualizzazione struttura, infine premete il pulsante OK.
All’interno della nuova finestra comparsa a video dovranno essere inseriti i campi che costituiranno ogni record della tabella.
Cominciamo ad inserire i campi previsti per la tabella clienti compilando la colonna Nome campo:
– Nome
– Indirizzo
– Telefono
– PIVA
– Note
Nella colonna tipo di dato è necessario specificare che genere di dati devono essere memorizzati nel relativo campo. Access prevede per ciascun campo il tipo di dati “testo”: tale impostazione deve essere sempre controllata in modo che sia in accordo con quanto si deve memorizzare nel campo relativo.
Il tipo di dati associato al campo Note, per esempio, dovrà essere impostato a Memo: in questo modo sarà possibile inserire fino a 65535 caratteri superando il limite di 255 caratteri di un campo di tipo Testo standard.
Per ogni campo devono inoltre essere specificate la dimensione massima delle informazioni che potranno essere inserite: impostiamo, per esempio, a 100 la dimensione del campo Nome. In questo modo potranno essere inseriti sino a 100 caratteri. Un’altra impostazione importante è Consenti lunghezza zero: essa permette di specificare se è consentita l’immissione di stringhe a lunghezza zero nel campo selezionato.
Impostiamo la dimensione per il campo Indirizzo a 255, per il campo Telefono a 25 e Consenti lunghezza zero a Sì (in questo modo sarà possibile non inserire il numero telefonico qualora non si conosca).
La struttura della tabella apparirà come in figura:
A questo punto, per memorizzare la struttura della tabella, chiudete la finestra, premete il pulsante Sì non appena compare il messaggio Salvare le modifiche alla struttura di tabella ‘Tabella1’?, quindi inserite il nome della tabella nella piccola finestra che apparirà a video. In questo caso specifichiamo Clienti e premiamo il pulsante OK.
Access ci avvertirà che non è stata definita alcuna chiave primaria. Una chiave primaria è un campo speciale (di solito denominato ID) che permette di impostare delle relazioni fra più tabelle. Premiamo il pulsante Sì per creare automaticamente una chiave primaria denominata ID.
Vedremo tra poco come utilizzare la chiave primaria appena inserita. Anticipiamo comunque che assegnato un ID, una specie di codice identificativo, alla chiave primaria all’interno della tabella Clienti, utilizzeremo lo stesso ID per contrassegnare, nella tabella Ordini, le ordinazioni effettuate da un certo cliente.
Creazione delle altre tabelle
Passiamo ora alla creazione della tabella Prodotti. All’interno di tale tabella ci sarà possibile inserire, mediante il programma in Visual Basic che creeremo, la lista dei prodotti commercializzati.
Facciamo clic sul pulsante Nuovo, selezioniamo Visualizzazione Struttura e premiamo il pulsante OK.
Inseriamo i seguenti campi. In tabella è indicata la dimensione ed il tipo di dati da specificare.
Chiudiamo la finestra per l’inserimento della struttura della tabella, salviamo le modifiche, impostiamo come nome della tabella Prodotti, infine premiamo Sì, così come in precedenza, per creare una chiave primaria (ID).
Facciamo clic ancora una volta sul pulsante Nuovo, selezioniamo Visualizzazione Struttura e premiamo il pulsante OK.
Questa volta prepariamo la tabella Ordini inserendo i seguenti campi:
Chiudiamo la finestra per l’inserimento della struttura della tabella, salviamo le modifiche, impostiamo come nome della tabella Ordini, infine premiamo Sì, per creare una chiave primaria.
Per motivi di semplicità abbiamo preferito sulle proprietà di ogni singolo campo, tuttavia, ogniqualvolta create un database studiate bene il tipo di dati che ogni campo dovrà ospitare, impostate opportunamente dimensioni, valore predefinito, formato e così via in modo da evitare problemi e facilitare il vostro lavoro di programmazione. Tali proprietà sono impostabili avvalendosi della scheda Generale.
Abbiamo creato, così come è visibile in figura, tre tabelle: Clienti, Ordini e Prodotti.
Inseriamo ora, direttamente in Access alcuni prodotti all’interno della tabella Prodotti: per far ciò facciamo clic su Prodotti e premiamo il pulsante Apri.
Non specifichiamo alcunché nella colonna ID (chiave primaria): compiliamo esclusivamente i campi Nome, Categoria, Costo e Disponibilita.
Nel campo Nome specificate il nome del prodotto, nel campo Categoria il tipo del prodotto, nel campo Costo il costo in lire, nel campo Disponibilita il numero di unità vendibili. Potete prendere spunto dall’esempio in figura:
A questo punto possiamo chiudere Access. Nella prossima lezione vedremo come intervenire sul database appena creato direttamente da Visual Basic.