Seconda parte della guida alla creazione di un database relazionale con Microsoft Access.
guida

Creazione guidata di maschere in Microsoft Access

In questa guida useremo la funzione creazione guidata di maschere per aggiungere elementi di interfaccia utente a un’applicazione Microsoft Access.

Per facilitare l’esposizione degli argomenti ci rifaremo all’esempio di sviluppo del database di una biblioteca personale già trattato in Creare un database relazionale con Access, che rappresenta a tutti gli effetti la prima parte di questa guida.

Leggi la prima parte della guida sulla creazione di un database relazionale con Access e scarica il file di esempio: bit.ly/crea-db-access

Se non sai nulla di Access e db relazionali ti consiglio di iniziare dalla prima parte della guida, altrimenti prosegui con la lettura.

Database di una libreria personale con Access

Prima di lanciarci nella creazione delle maschere facciamo il punto della situazione:

  • vogliamo realizzare un database relazionale su base Microsoft Access per gestire una piccola biblioteca personale;
  • nella prima parte della guida abbiamo impostato le tabelle e le relazioni, ma questo non toglie che nel prosieguo dello sviluppo si facciano scelte diverse ovvero che si decida di modificare la struttura informativa con nuove tabelle, campi e relazioni;
  • la prima parte della guida è stata realizzata con Microsoft Access 2010 Professional® mentre da adesso in poi verrà utilizzata la versione 2013; le istruzioni da seguire sono molto simili al punto che le guide sono valide anche se si utilizzano versioni precedenti di Access come 2003 e 2007, con l’unica avvertenza sulla retrocompatibilità;
  • questa seconda parte della guida è dedicata alla creazione guidata delle maschere ma non esaurisce l’argomento maschere, che verrà completato nelle prossime puntate (resta in ascolto: seguici anche su Google+), quindi seguiranno approfondimenti su query, report e altri aspetti della programmazione;
  • man mano che procederemo con le puntate della guida saranno rilasciate le versioni successive dell’applicazione db Access Libria; le release v. 0.1.0 e 0.2.0 si riferiscono ai primi due step della guida: se vuoi implementare da te ciò che è mostrato in questa puntata sulle maschere allora parti dalla v. 0.1.0, se invece preferisci avere già tutto pronto scarica la v. 0.2.0;
  • per qualsiasi domanda su Access usa i commenti a quest’articolo.

Ok, siamo pronti per partire.

Scarica e apri Libria in Microsoft Access

Per utilizzare Microsoft Access® ti occorre una licenza d’uso, che puoi acquistare direttamente online nello Store Microsoft. Ovviamente se il tuo pc/mac ha già installata una versione valida del software puoi saltare questo step e passare direttamente all’apertura del programma.

Come si presenta la schermata di Microsoft Access 2013 all'apertura del programma.

Se non l’hai già fatto, scarica Libria v. 0.1.0 e apri il file in Access.

Così si presenta l'applicazione db Libria v. 0.1.0 all'apertura.

L’immagine sopra mostra come si presenta la finestra di Access all’apertura di Libria v. 0.1.0, con l’elenco delle tabelle nel riquadro di spostamento sulla sinistra. Fai clic su Abilita contenuto, quindi vai in Strumenti database e fai clic su Relazioni.

impostare l'integrità referenziale dalla finestra Relazioni di Microsoft Access

La finestra Relazioni di Access mostra le relazioni tra le tabelle e le query, anche se in questo caso ci sono soltanto le tabelle perché non abbiamo ancora creato alcuna query. Da qui possiamo impostare le caratteristiche delle relazioni.

È giunto il momento di cambiare qualcosa rispetto alla prima parte della guida. Non c’è motivo di preoccuparsi, perché è vero che applicheremo l’integrità referenziale, ma lo faremo con un clic su tutte le relazioni, quindi per il momento non c’è nulla da studiare o da capire.

Procedi così:

  • fai clic su una delle “linee” che uniscono le tabelle, ad esempio su quella che unisce le tabelle Libri e Autori_e_Libri
  • all’apertura della finestra come nell’immagine sopra clicca sulla spunta Applica integrità referenziale, ignora le altre opzioni e fai clic su OK;
  • ripeti la procedura per ogni linea in modo da applicare l’integrità referenziale a tutte le relazioni
  • salva.

A questo punto le relazioni si presenteranno pressappoco così.

Come si presenta la finestra delle Relazioni di Access quando applichiamo l'integrità referenziale.

La tua prima maschera in Access

Se la prima volta non si scorda mai allora vale la pena di scegliere bene! Considerando che Ruoli_Autore è l’unica tabella per la quale la quale la volta scorsa abbiamo creato dei record, considerato pure che ha un’unica relazione facile facile con Autori_e_Libri, direi di iniziare proprio da qui.

Per rinfrescarti le idee, prima di passare alla creazione della maschera apri la tabella Ruoli_Autore e guarda cosa c’è dentro. L’immagine che segue mostra la tabella in modalità Visualizzazione foglio dati, con i record inseriti corrispondenti ai quattro ruoli che abbiamo ipotizzato per un autore.

Come si presenta la tabella Ruolo_Autore del db in visualizzazione foglio dati.

Se vuoi saperne di più su questa tabella passa alla Modalità struttura, altrimenti allaccia la cintura di sicurezza perché si parte!

Indagare velocemente la struttura di un database

Ricorda che sono due le “viste” principali che Access ti offre per indagare la struttura di un database: la finestra Relazioni e le tabelle in Modalità struttura.

la finestra che appare in Access quando si accede alla creazione guidata della maschera.

Chiudi le finestre aperte e dal menu Crea fai clic su Creazione guidata maschera. Se nel Riquadro di spostamento hai selezionato Ruoli_Autore, nella finestra che si apre troverai già selezionata la tabella in questione, altrimenti puoi farlo tu stesso dal menu a tendina.

Seleziona i campi della maschera tra quelli disponibili. L'elenco dei campi disponibili dipende dalla tabella selezionata tra quelle del del database.

Usa il pulsante indicato “>>” per selezionare i campi che vuoi inserire nella maschera: in questo modo trascinerai tutti i campi tra quelli disponibili per la tabella selezionata (elenco a sinistra), mentre se fai clic sul pulsante “>” puoi inserire un campo alla volta.

La selezione dei campi da includere nelle maschere è molto semplice. Come puoi vedere dall’immagine, infatti, nella finestra ci sono due riquadri: in quello di sinistra ci sono i campi che è possibile selezionare, mentre nel riquadro di destra ci sono i campi selezionati.

Fai clic su Avanti.

Access permette di scegliere tra diversi layout di maschera.A questo punto Microsoft Access ti propone quattro tipi diversi di layout per la maschera: scegli Tabulare, che ha la caratteristica di presentare i record in righe con i campi disposti in colonne. Clic su Avanti.

Questa è l'ultima opzione che presenta la creazione guidata di maschere prima di Fine: si può aprire la maschera per visualizzare i dati oppure in modalità modifica struttura.Apri la maschera per visualizzare i dati, cioè verifica che sia spuntata l’opzione come in figura e fai clic su Fine. Adesso puoi dirlo forte: HO CREATO UNA MASCHERA CON ACCESS!!! 🙂

Una semplice maschera di Access con layout tabulare.

Spostarsi tra i record di una maschera

Una maschera di default si apre in modalità Visualizzazione maschera, che altro non è che quella che vedi nell’immagine in alto e in quella che segue. In questa modalità è possibile sia visualizzare i dati sia aggiungerli, eliminarli o modificarli, sempre che ciò sia consentito da chi ha progettato o da chi amministra il database (è possibile inserire blocchi o vincoli, ma al momento non ci interessa).

I pulsanti di spostamento consentono di navigare le maschere spostandosi tra i record.

In una maschera tabulare come Ruoli_Autore abbiamo diversi modi per muoverci tra i record:

  • fare clic sulla riga corrispondente, eventualmente anche in un campo o nel quadratino a sinistra di ogni record;
  • usare i pulsanti di spostamento in basso;
  • scrivere il numero del record nel campo che indica il record corrente e premere Invio (sconsigliato);
  • usare il campo Cerca per cercare valori nei diversi campi.

Questi sono soltanto i modi standard disponibili per ogni maschera, ma tu puoi aggiungerne altri usando le grandi abilità che svilupperai seguendo tutte le puntate di questa guida (sic!).

Oltre ai due campi citati nella barra standard troviamo sei pulsanti per la navigazione, il significato dei quali è intuitivo: Primo record, Record precedente, Record successivo, Ultimo record, Nuovo record, Nessun filtro corrente.

Maschera con layout Foglio dati

In questo paragrafo seguiremo una procedura simile a quella appena vista per creare una maschera dati per la tabella Tipi_Libro, ma in questo caso sceglieremo Foglio dati come layout.

In molti casi questo layout è quello che rende più semplice la consultazione dei dati del db.

Ripetiamo dunque la procedura già vista: andiamo sul menu Crea e poi su Creazione guidata maschera, selezioniamo la tabella che ci interessa, in questo caso Tipi_Libro, trasciniamo i due campi nel riquadro di destra con “>>” e facciamo clic su Avanti. Come layout scegliamo Foglio dati.

A un certo punto è Access a suggerire le opzioni per il layout tra cui anche foglio dati.Completata la procedura, la maschera si presenterà con un layout molto simile a quello di una semplice tabella.

Qual è il migliore layout per una maschera?

Non sottovalutare il layout foglio dati, che è molto comodo in alcune circostanze e semplifica il lavoro di chi deve consultare il database. Allo stesso tempo non affezionarti a un unico layout ma scegli quello che si adatta meglio alla situazione.

L'aspetto grafico di questa maschera di Access è simile a quello di una semplice tabella.Inserire dati in una maschera

Se ti sposti nel campo Tipo e digiti un qualsiasi carattere vedrai apparire l’iconcina della matita alla sinistra del record corrente, in questo caso il primo perché la tabella sui cui si basa la maschera non è popolata; allo stesso tempo il valore del campo ID corrente verrà “visivamente” aggiornato.

La maschera di Access si aggiorna mentre inserisci un nuovo record.

Nel campo Tipo scrivi “Cartaceo” come ho fatto io – guarda l’immagine qui sopra – e poi fai clic sulla riga di sotto oppure sul pulsante che ti porta la record successivo. Questa operazione serve per aggiornare il record, cosa che non accade fino a quando vedi la matita (per questo sopra ho scritto “visivamente”).

Esistono di certo altri modi per aggiornare il record, ma per adesso va bene così. Una volta che avrai fatto clic sul rigo sotto vedrai il record aggiornato, cioè avrai aggiunto/modificato dati relativi al database e non servirà alcuna successiva operazione di salvataggio per la registrazione di tali modifiche.

L'aggiornamento della tabella di un database Access non richiede un'operazione specifica di salvataggio.Prima di passare oltre inseriamo anche l’altro tipo previsto per il formato dei libri, cioè “Digitale”.

Tra i formati previsti per adesso consideriamo il cartaceo e il digitale.Maschera Editori e layout a colonne

Diamo uno sguardo alle Relazioni: delle sei tabelle coinvolte soltanto due hanno già una maschera, quindi ci tocca cerare le maschere per le restanti… 3 tabelle! E sì, perché la tabella Autori_e_Libri è di fatto una tabella di servizio che ci serve a definire la relazione molti-a-molti tra Autori e Libri, quindi la coinvolgeremo nel rapporto tra queste due tabelle e non da sola, sebbene in alcune applicazioni potrebbe avere un senso fare questa cosa (ok, però non complichiamoci la vita!).

Diamo uno sguardo allo schema delle relazioni del database AccessAvviamo l’ormai nota procedura di creazione guidata della maschera, selezioniamo tutti i campi della tabella Editori e facciamo clic su Avanti.

Libria, database per una biblioteca personale: creazione guidata della maschera degli Editori.Questa volta scegliamo il layout A colonne, completiamo la procedura e otteniamo la maschera basata sui dati della tabella Editori.

Questo layout ha l'indubbio vantaggio di essere più intuitivo e fruibile perché i campi si presentano in verticale, un record alla volta.Il layout a colonna è quello che garantisce in assoluto la migliore usabilità quando l’operatore è chiamato a immettere i dati in modo da compilare una scheda alla volta.

Dall’immagine in alto si vede infatti che la “vista” comprende un unico record alla volta – quindi l’operatore è concentrato sulla scheda corrente, nella fattispecie di un editore – e che i campi sono organizzati verticalmente uno per riga, quindi senza possibilità di errore e con una disposizione che facilita la comprensione e l’immissione riducendo le possibilità.

Un’ulteriore caratteristica di questo layout sta nella disposizione delle etichette che, posizionate alla sinistra, non interrompono la sequenza verticale dei campi.

Come vedremo in seguito, le caratteristiche del layout a colonna non sono condivise dal layout giustificato, che permette però di disporre più elementi nella porzione visibile dello schermo.

Ricordiamo infine che tutte le maschere possono essere personalizzate se aperte in modalità Visualizzazione struttura.

La User Experience si applica anche ad Access?

La risposta è affermativa: l’interfaccia di un’applicazione Access deve essere studiata nei minimi dettagli al pari dell’interfaccia di una web application o di un sito internet. Tutte le maschere richiedono modifiche per essere ottimizzate lato utente: campi, etichette e altri controlli vanno ottimizzati per migliorare la produttività e ridurre le possibilità di errore. Attenzione alla disposizione delle etichette (label) e alle dimensioni dei campi: queste ultime sono da variare per offrire comodi appigli visuali.

Maschera Autori e layout giustificato

Passiamo agli Autori.

Nell'applicazione database occorre creare una maschera dedicata agli autori per inserirvi i relativi dati.

Completiamo la rassegna dei layout disponibili in Creazione guidata maschere assegnando il layout giustificato alla maschera Autori che ci apprestiamo a creare.

Identica procedura di creazione. Anche questa volta usiamo tutti i campi di una singola tabella, nel caso di specie quella Autori.

L'interfaccia utente per i dati degli autori è una maschera di Microsoft Access.

Scegliamo il layout giustificato.

Quello giustificato è uno dei layout disponibili in creazione guidata maschera di Access.

Otteniamo la maschera Autori … fin troppo ordinata per i miei gusti!

Questo tipo di layout viene erroneamente considerato sinonimo di ordine quando in realtà spesso complica il lavoro degli operatori. Ai clienti di solito piace molto proprio perché “apparentemente pulito”, ma nelle aziende raramente le persone che pagano sono anche quelle che passano ore e ore davanti al pc.

Il mio consiglio resta pertanto sempre lo stesso: mettiti nei panni di chi dovrà usare il programma e suggerisci al tuo cliente di fare la stessa cosa.

In ogni caso è lavorando su tutti gli elementi dell’interfaccia che si migliora l’usabilità, quindi anche sugli elementi grafici più elementari come bordi e colori di sfondo.

A pensarci bene c’è più di qualche analogia con il web design. ^__^

Database Access per una biblioteca: layout pulito con vista su scheda singola.

È giunta l’ora di impelagarsi in una brutta faccenda, che ovviamente risolveremo in quattro e quattr’otto.
Perché lavorare è bello, ma lasciare che siano gli altri a farlo per noi non ha prezzo! 😀

Prima però torniamo alla nostra finestra delle Relazioni e guardiamo la tabellaccia Autori_e_Libri.

Ogni libro può avere più autori e ogni autore può scrivere più libri.

Il ruolo di un autore in riferimento al singolo libro

Immaginiamo di starcene davanti al nostro gestionale a inserire dati sui libri di cui si compone la nostra biblioteca, quando ci capita tra le mani un’edizione italiana de Il conte di Montecristo di Alexandre Dumas firmata Emilio Franceschini. Come inserire queste informazioni nel nostro database?

Nel nostro caso la parola autore è un termine convenzionale per indicare una persona che ha avuto uno dei seguenti ruoli in merito al libro: autore (scrittore), curatore, contributore, traduttore. Indipendentemente dal ruolo rivestito in uno o più libri, la persona va inserita nella tabella Autori (con la creazione di un nuovo record se non già presente).

Per questo motivo inseriremo nella tabella Autori sia Alexandre Dumas sia Emilio Franceschini, ma dovremo poi preoccuparci di assegnare i rispettivi ruoli coperti in merito al singolo libro, in questo caso a Il conte di Montecristo.

Ora, ricordarsi delle possibili opzioni non è una cosa agevole. Mentre sto inserendo Dumas, ad esempio, non posso ricordarmi di avere definito il suo ruolo come “autore” (nel senso di scrittore) né che questo sia associato all’identificativo ID=1.

La soluzione a questo problema è fare in modo che all’atto della specifica del ruolo sia possibile selezionare uno tra i ruoli disponibili, ad esempio da un menu a tendina. Premesso che questo tipo di funzionalità può essere realizzata anche a livello di interfaccia, impostiamo per il campo IDRuolo della tabella Autori_e_Libri una ricerca all’interno dei valori possibili definiti nella tabella Ruoli_Autore.

Se ti sei perso nel seguire il ragionamento non preoccuparti: questa è sì la brutta faccenda di cui parlavo, ma la buona notizia è che adesso metteremo in pratica la soluzione e tutto sarà più chiaro.

Partiamo dalla Visualizzazione struttura di Ruoli_Autore, che riporto qui per praticità.

La tabella dei possibili ruoli di un autore vista nella modalità visualizzazione struttura.

Ecco anche la Visualizzazione struttura di Autori_e_Libri.

Da questa modalità si hanno informazioni sulla natura dei campi della tabella, ad esempio sul tipo di dati.

Selezioniamo il campo IDRuolo e facciamo clic sul tab Ricerca che si trova in basso.

Database Access: definire le proprietà di ricerca relative al campo di una tabella.

Impostiamo i valori delle prime sei righe come segue:

  • Visualizza controllo: Casella di riepilogo
  • Tipo origine riga: Tabella/query
  • Origine riga: Ruoli_Autore
  • Colonna associata: 1
  • Numero colonne: 2
  • Intestazioni colonne: Sì

Avremmo potuto compiere scelte diverse in merito alle voci sopra, ma queste vanno più che bene. Le scelte importanti sono in particolare le 2°, 3° e 4°, che nell’insieme impongono ad Access di suggerirci per il campo IDRuolo i valori del campo ID (cioè il primo campo come definito in Colonna associata) della tabella Ruoli_Autore.

Quanto fatto adesso avrà effetto sulle maschere, ma possiamo avere un assaggio del risultato passando alla Visualizzazione Foglio dati della tabella: andando nel campo IDRuolo di uno qualsiasi dei record si aprirà infatti un menu a tendina come nell’immagine sotto, permettendoci di selezionare il valore desiderato.

I possibili valori per un campo vengono proposti tramite menu a tendina per mezzo di una ricerca all'interno di una seconda tabella.

Selezione facile del formato (Tipi_Libro)

Quanto fatto per il ruolo di un autore facciamolo anche per il tipo di libro (cartaceo o digitale). Sempre per praticità riporto di nuovo la finestra delle Relazioni, in modo da vedere com’è collegata l’informazione sul tipo di libro.

Com'è collegata nel db relazionale l'informazione sul formato dei libri.

Seguiamo la procedura già vista e infine verifichiamo che il valore di IDTipo (tabella Libri) sia selezionabile attraverso un menu a tendina tra i valori registrati nel campo ID della tabella Tipi_Libro. Se infatti apriamo la tabella Libri in Visualizzazione foglio dati vediamo questo.

Modifica alla tabella Libri del database: i valori per IDTipo sono selezionabili da un menu a tendina.

Suggerimento: modifica la larghezza dei campi per leggere meglio i dati ma ricorda di salvare la tabella, così alla prossima apertura non dovrai modificare di nuovo la larghezza.

Selezione facile dell’editore

Guardando le Relazioni ci rendiamo conto che il metodo della selezione con casella di riepilogo potrebbe essere usato anche per la selezione dell’editore. Questa soluzione infatti non è soltanto logica ma anche pratica, cioè velocizza la compilazione della scheda libro.

Usiamo il metodo della casella di riepilogo anche per la selezione dell'editore, utile nella compilazione della scheda libro.

La procedura è identica a quella vista e dunque mi limito a mostrarti l’ennesimo screenshot.

Semplifichiamo l'immissione dei dati consentendo la selezione dell'editore dalla relativa tabella tramite un menu a tendina.

Nota che questa volta per fare una cosa trasgressiva ho fatto mostrare le prime tre colonne invece delle prime due. 😀

Il numero di colonne da mostrare varia da caso a caso. Oltre all'identificativo si usa mettere sempre anche un elemento testuale che aiuti l'identificazione.

Scommetto che sulla trasgressività non ci sei cascato e hai fatto bene. Le scelte di questa guida hanno ragioni didattiche e infatti volevo suggerirti quando è opportuno mostrare più campi in una casella di riepilogo o combinata come quella di IDEditore.

Nel caso di IDEditore è opportuno mostrare 3 campi? Ragioniamoci insieme.

Se partiamo dal presupposto che una casella del genere serva a selezionare il valore desiderato, potremmo ipotizzare che si debbano mostrare tutti e soli i campi che sono utili a scegliere; semplificando al massimo il ragionamento e ricordando che in usabilità meno è meglio di più, potremmo giungere all’erronea conclusione che si debba mostrare il solo identificatore univoco, cioè la chiave primaria.

Nulla sarebbe più sbagliato! Se l’operatore leggesse ID=68 non potrebbe mai sapere se si tratta dell’editore Guanda oppure di Longanesi. Allo stesso tempo però non possiamo mostrare il solo nome (campo Editore) se questo non identifica univocamente il soggetto. A questo proposito, non è un caso che la relazione sia stabilita in base a campi uno dei quali è chiave primaria.

La soluzione migliore è mostrare il minor numero possibile di campi, tra i quali devono figurare almeno un campo descrittivo insieme alla chiave primaria. Nei due casi precedenti abbiamo seguito questa regola mostrando in entrambi i casi due campi, uno dei quali era chiave primaria; nel caso degli editori abbiamo invece inutilmente abbondato in quanto NomeBreve potrebbe tutt’al più sostituire Editore, mentre non ha senso affiancarlo (si tratta di decidere se mostrare il nome breve o quello per esteso).

In definitiva, per IDEditore possiamo dire di avere incluso inutilmente un campo in più, ne sarebbero bastati 2.

Maschera e sottomaschera

La creazione guidata della maschera dei Libri ci darà la possibilità di creare la nostra prima maschera collegata a una sottomaschera. Come al solito è più facile a farsi che a dirsi e per questo ho realizzato tanti screenshot che mostrano la procedura step-by-step.

Creazione guidata maschera Libri

Selezioniamo tutti i campi disponibili della tabella Libri.

La maschera genitore contiene i campi della tabella Libri e sarà collegata alla sottomaschera.

Per ogni libro vogliamo specificare l’autore o gli autori (possono essere anche più d’uno) e questa informazione nel nostro db è presente in termini di relazioni tra la tabella Libri e le due tabelle Autori e Autori_e_Libri, con quest’ultima che fa da tramite realizzando la relazione molti-a-molti.

Selezioniamo quindi i campi IDAutore e IDRuolo dalla tabella Autori_e_Libri.

Prendiamo due campi dalla tabella che serve a realizzare la relazione molti a molti.

Selezioniamo quindi Autore dalla tabella Autori.

Database Access: campo Autore nella sottomaschera.

Selezioniamo il campo Ruolo dalla tabella Ruoli_Autore.

Progettazione di maschere con Access: il campo ruolo è facoltativo ma risulta comunque comodo da avere all'interno della sottomaschera.

Facciamo clic su Avanti.

Maschera Access con sottomaschera in base alla tabella Libri.

Siamo giunti al punto in cui dobbiamo compiere due scelte:

  1. tra maschera con sottomaschere e maschere collegate: scegliamo la prima;
  2. tabella in base alla quale visualizzare i dati: scegliamo Libri.

Clic su Avanti e poi su Fine.

Questa maschera include tutti i campi della tabella Libri più una sottomaschera per collegare gli autori con il rispettivo ruolo.

La nostra maschera include tutte le informazioni che ci occorrono per registrare le schede dei libri e associarle agli autori, ma non si presenta molto bene sul piano estetico e funzionale. Nella prossima puntata della guida ad Access impareremo a personalizzare le maschere per renderle più chiare e fruibili per gli operatori.

Tra poco avrai un piccolo assaggio delle modifiche alle maschere, ma prima passiamo a popolare il nostro database con qualche dato.

Aggiunta di record tramite maschera

Un database senza dati è come un’auto senza carburante, perciò ho aperto le maschere ed ho iniziato a inserire informazioni sui libri, non troppe, giusto per farci un’idea. Ho scelto 8 libri di 3 autori, ma uno di questi ha un traduttore perché l’originale non è in italiano, quindi in tutto gli autori sono 4.

Decido di iniziare dal grande Stefano Benni: apro la maschera Autori e inizio a fare clic clic sulla tastiera.

Aggiungere un record nella tabella Autori.

Uno dopo l’altro inserisco i miei 4 autori. Non c’è molto da dire perché non ci siamo ancora posti il problema dei vincoli, sia a livello di tabella sia a livello di maschera. In un’applicazione db normalmente sono obbligatori alcuni campi, esattamente come accade nei form di contatto sui siti web.

Ops… chi ha parlato di form?

Impara a realizzare web forms

In questo articolo ti spiego come realizzare il tuo primo form in HTML5 con un campo di input di tipo testo. Include un esempio da scaricare completo di attributi, validazione e codice PHP.

Ok, chiudiamo la parentesi form e torniamo ai nostri autori. Come ti dicevo ne ho inseriti 4, come si vede dalla tabella Autori aggiornata.

Se inseriamo i dati in una maschera in realtà ritroviamo gli stessi nelle tabelle, in quanto le maschere sono soltanto interfacce.

Sono passato poi agli editori iniziando da Einaudi.

Molto comoda la finestra degli Editori, i campi sono disposti in verticale e ci si può concentrare su una scheda alla volta.

In tutto ne ho registrati 5, come puoi vedere dallo screenshot aggiornato della tabella Editori.

La tabella Editori aggiornata con i 5 record dopo l'immissione via maschera.

Dopo autori ed editori è il turno dei libri. Apro la maschera Libri e inizio a scrivere partendo da L’ultima lacrima di Benni editore Feltrinelli, ma subito inciampo in un piccolo problema.

Specificare l'autore nella sottomaschera è veramente difficile in assenza di un menu che suggerisce i nomi.

Al momento di indicare l’autore mi rendo conto di non avere un comodo elenco a tendina come per il ruolo, decido perciò di creare la solita funzionalità con la casella di riepilogo anche per l’autore. L’altra cosa che noto è che mi basta indicare IDAutore senza Autore e IDRuolo senza Ruolo, tanto quando si apre il menu a tendina si vedranno entrambi i campi se impostiamo la vista a 2 colonne.

Decido perciò di apportare queste modifiche e di rifare la maschera Libri… tempo? Ci vuole un attimo!

Apportare modifiche e ricreare una maschera

Per prima cosa apro la tabella Autori_e_Libri e imposto il tutto nel tab Ricerca del campo IDAutore.

Creazione della casella di riepilogo per il campo autore.

Poi passo a controllare se in Visualizzazione foglio dati la ricerca funziona.

Selezione facilitata per il campo IDAutore della tabella. Questa impostazione si riflette anche nelle maschere.

A questo punto non mi resta che eliminare la maschera Libri e la sottomaschera Autori_e_Libri dal riquadro di spostamento (le elimino perché voglio crearle da zero per includere nella sottomaschera le ultime modifiche).

La nuova maschera Libri è più semplice della precedente e si basa su meno tabelle e meno campi.

La nuova maschera Libri è più semplice della precedente perché si basa su un numero minore di campi estratto da due sole tabelle. Oltre ai campi di Libri, infatti, selezioniamo soltanto IDAutore e IDRuolo da Autori_e_Libri.

Una volta completata la procedura ottengo la nuova maschera.

Microsoft Access: esempio di semplificazione per una sottomaschera.

Come puoi verificare osservando l’immagine seguente, adesso l’associazione dell’autore al libro è più semplice e avviene tramite selezione del record; la stessa cosa accade per il ruolo.

Le informazioni da archiviare nella base di dati vengono inserite tramite maschere in Access. Quello in foto è un esempio a scopo didattico inerente la maschera di una applicazione database di una biblioteca personale.

Missione compiuta! Però non ti affezionare troppo a questa maschera perché la cambieremo radicalmente e alla fine sarà moooolto più bella! 😉

Relazioni viste dalle tabelle

Voglio mostrarti una cosa: se apri la tabella Libri e fai clic sul segno “+” che si trova alla sinistra del record, si apre una una nuova riga collegata al record. Questa riga include la coppia (IDAutore, IDRuolo) relativa all’ID del libro, ovvero include per il libro corrente l’autore e il ruolo; se il libro ha più autori vengono mostrate più righe.

Esplorare i dati collegati a partire da una tabella.

Possiamo praticamente dire che Microsoft Access ha al suo interno una funzionalità per mostrare le relazioni anche a livello di interfaccia tabella. Questa funzionalità si intuisce benissimo dalla prossima immagine, che mostra la stessa tabella Libri vista sopra, questa volta popolata con 8 record.

Esplorazione dei record delle tabelle con i dati collegati. L'esempio è tratto dalla Guida alla creazione di maschere di Access.

Nota che in corrispondenza del libro con ID=8 (La macchina umana) si vedono due autori relati a questo libro, ciascuno abbinato al ruolo che ha avuto, il tutto tramite la coppia di valori (IDAutore, IDRuolo).

Questo aspetto è strettamente connesso alle relazioni: la coppia (IDAutore, IDRuolo) viene infatti letta all’interno della tabella Autori_e_Libri grazie alla relazione uno-a-molti che si stabilisce con la tabella Libri (un libro può avere uno o più autori; i due campi collegati sono ID di Libri e IDLibro di Autori_e_Libri).

Opzioni di Access

Con le modifiche viste in questa seconda puntata la nostra applicazione si aggiorna alla versione v. 0.2.0 e anche il suo nome va aggiornato. Per farlo andiamo nel menu File > Opzioni > Database corrente > Titolo applicazione.

Come modificare il titolo dell'applicazione dalle opzioni di Microsoft Access.

Download di Libria

# Versione
1 Libria 0.1.0
2 Libria 0.2.0

Conclusioni

L’obiettivo di questa guida è mostrare come usare la creazione guidata di maschere per semplificare il lavoro di costruzione di interfacce per un’applicazione db Access. Per raggiungere lo scopo ho scelto di puntare su poche soluzioni, che ho riproposto a costo di sembrare ripetitivo. Un esempio su tutti: la ricerca con casella di riepilogo.

Questo è solo l’inizio. Per andare avanti e completare Libria dovremo iniziare a fare cose un po’ più complesse, perciò le prossime puntate saranno meno ripetitive e più stimolanti, mentre le istruzioni passo passo si concentreranno sulle nozioni nuove e gli aspetti importanti.

Non dimenticare di scaricare Libria v. 0.2.0 e di rivoltarla come una calzino. Goditela perché le prossime release saranno più complicate. Se vuoi contattarmi per domande e segnalazioni su Access usa i commenti,  i social, i segnali di fumo e i fondi del caffè. 😀

Se vuoi che sviluppi per te un’applicazione Access scrivimi o chiamami.

Ecco la 3° puntata della Guida Access: progetto e customizzazione di maschere.

Francesco D'Agostino
Lettore compulsivo, motociclista incallito, gran mangiatore di pizza, tifoso insospettabile. Massa proporzionale alla curiosità. Founder di Endelab, Digital Agency in cui ricopre il ruolo di consulente, sviluppatore e project manager.
Francesco D'Agostino

20 pensieri su “Creazione guidata di maschere in Microsoft Access”

  1. dott. D’Agostino vorrei farle i miei complimenti per le ottime guide. Ben spiegate e molto utili. Io vorrei realizzare un database per docenti, dove poter inserire tutti i dati (personali e lavorativi) tramite maschere di inserimento ed avere così poi la possibilità di stampare un loro stato di servizio.
    Naturalmente un suo aiuto sarebbe gradito 😀
    Distinti Saluti
    Angelo Boccia

    1. Salve Angelo,
      grazie. 🙂

      Gli esempi riportati in questo articolo e negli altri due già pubblicati coprono in larga parte le sue esigenze, a meno della stampa delle informazioni. Può realizzare schede stampabili con lo stato di servizio sfruttando i report.

  2. Ciao Francesco,
    premetto che non so creare Db, ma la mia impavidità mi ha portato a promettere un piacere che non so se riuscirò a fare ad un amico.
    Lui prepara creme e rimedi naturali con erbe e ha tutte le sue pozioncine scritte a mano!
    Vorrei aiutarlo a mettere tutto in digitale con un Db, ma non so da cosa partire!! L’unica cosa che penso di sapere è che ci vorrà di sicuro un Db relazionale che dovrà contenere i nomi di tutte le erbe, di tutti i rimedi, delle erbe e delle quantità associate al rimedio ed eventualmente la persona, chiamiamolo cliente (ma in realtà essendo una sua attività gratuita si fa ripagare solo dei materiali) che usa determinati rimedi, un po’ come se fossero ordini…credi che sia troppo complicato per una neofita imbattersi in un’impresa simile? Ho paura sia più semplice per un bradipo ubriaco vincere le olimpiadi!!! Grazie per l’aiuto!

    1. Ciao Oriana,
      la prima cosa che devi fare è immaginare il lavoro del tuo amico e fartene una rappresentazione, come se si trattasse di un flusso di attività. Crea uno schema su foglio usando una matita, così potrai cancellare e modificare il tuo schema perfezionandolo.

      Lo schema rappresenta i vari oggetti e le attività sugli oggetti, quindi ti dice chi-fa-cosa e anche quali attività trasformano un input in un output.
      Esempio: il cliente fa un ordine, sulla base dell’ordine vengono prelevate/ordinate le materie prime, dalle lavorazioni si ottengono i prodotti che compongono l’ordine, viene consegnata la merce, inviata la fattura, incassato l’importo. Clienti, ordini, materie prime, lavorazioni, prodotti, fatture sono tutte entità.

      Non è detto che l’applicazione db che andrai a creare si occupi di tutte le fasi. Potrebbe darsi ad esempio che il tuo amico non abbia necessità di gestire gli ordini e le fatture, che non voglia gestire informaticamente il magazzino perché consiste in una piccola dispensa che controlla a vista, che la mole di lavoro sia ridotta al punto che non serva tenere traccia dei costi e dei ricavi.

      Individua le attività e le entità che faranno parte della tua applicazione db, che sono poi quelle che richiedono un trattamento automatico delle informazioni – per ragioni di controllo e/o reporting, perché il dato in output fungerà da input in un’altra applicazione, ecc… ovviamente sto generalizzando a beneficio di tutti 🙂 – .

      A questo punto sei pronta per creare la struttura del tuo database relazionale. Faccio un esempio.

      Le materie prime potrebbero essere inserite in una tabella “materie_prime”; i prodotti o preparati potrebbero essere inseriti in una seconda tabella “preparati”; ogni preparato potrebbe richiedere attività e materie prime; nell’ipotesi che il tuo cliente voglia tracciare solo le materie prime dovrai scegliere una strada per archiviare l’informazione che lega le materie prime ai preparati (una possibile soluzione è creare una tabella intermedia “preparati_e_materie_prime” con le chiavi della prima e della seconda tabella che unite formano la chiave primaria).
      Potrebbero esserci anche la tabella dei clienti e quella degli ordini, ogni ordine ha un cliente e uno o più voci (dove la voce potrebbe essere eventualmente legata a un preparato o ad altro, oppure corrispondere esattamente a una certa quantità di un preparato).

      Le scelte dipendono sempre dal modo di lavorare e quindi al flusso di attività e di entità che entrano in gioco in queste attività. Per questo bisogna sempre iniziare dalla fase in cui si definisce lo schema e dedicargli il giusto tempo. 😉

  3. ciao, è possibile avere un tutorial su come far diventare questo file un vero e proprio applicativo per la gestione di una biblioteca? Grazie e complimenti per la guida molto utile

  4. Se trovi una versione di Office con Access a quel prezzo va benissimo, anche la 2010.
    Io quando posso prendo le ultime versioni perché becco sempre il cliente aggiornato, ma se devi usarlo solo a casa o nella tua azienda una versione 2010 è perfetta. 😉
    Quando vuoi, se hai bisogno di aiuto sono qui. 🙂

  5. Ciao Flavia,
    ti capisco, Access 2000 ha ormai 15 anni e sono tantissimi nel software, anche se devo confessarti di conoscere diverse realtà che la utilizzano ancora. Non so dirti se i problemi che stai incontrando siano superabili con le versioni 2000, 2003 e 2007 – in verità penso che lo siano – , ma se hai deciso di prendere una nuova versione il problema è risolto.

    Attualmente sto lavorando su Office 2013, la cui versione completa può essere acquistata online anche in abbonamento. Premesso che non sono sponsor o rivenditore di Microsoft, per 10€ al mese hai la versione full che include 5 licenze con Word, Excel ,Access, Publisher, Outlook, PowerPoint e One Note, unitamente a un comodissimo spazio cloud di OneDrive da ben 1TB.

    1. Grazie, ma… vuoi dire che se un mese non pago, non posso neppure aprire i file che usano questi sw? Nemmeno se sono sul cloud? 120 euro l’anno… forse conviene comprarselo! Ti chiedevo consiglio perché Office 2010 si trova a prezzi accessibili, tipo 80/90 euro, e mi aspetto che Access 2013 non siano molto diverso dal 2010… o sì?

      Grazie comunque, ti seguirò ancora non appena passo a un nuovo Access.
      Flavia

  6. Ciao, ho capito che lavorare con Access 2000 rappresenta un ostacolo insormontabile. Non solo non posso scaricare libria, ma non posso neppure ottenere una decente Casella di riepilogo nella tabella Autori-e-titoli, come da te suggerito. Cosa mi consigli, Access 2007 o una versione superiore? Ho bisogno di ottenere risposte multiple nello stesso campo, in modo però che vi si possa in seguito applicare una query per individuare le occorrenze di ciascuna risposta data. So che in versioni successive esistono le caselle combinate a risposta multipla, ma non so se le risposte sono filtrabili da query.
    Sono disposta ad acquistare versione successiva, quale mi consigli?
    Grazie tantissimo, la tua pagina è molto utile!

  7. scusa non ho mai usasto access anche se ho il 2007 ma se scarico Libria v. 0.1.0 o la 0.20 mi si apre una pagina in html che se anche salvo non viene aperta in nessun modo da access. il motivo?

    1. Ciao Flavia,
      benvenuta e grazie per il tuo interesse.
      L’articolo sulla personalizzazione delle maschere (3° parte della guida) arriva tra pochissimo, lunedì 8 giugno.

      A seguire la 4° parte sulle query e la 5° sui report. Nella 6° ci saranno vari argomenti non trattati nelle precedenti puntate e il rilascio di Libria.

      Vorresti che fosse trattato un aspetto in particolare?

      1. A dir la verità, mi chiedo come fanno quelli bravi a fare delle maschere belle… a volte non sembrano nemmeno dei database! Cioè, io faccio maschere ultrasemplici, con sfondo monocolore, pulsanti che non riesco nemmeno a colorare… ma vedo che alcuni creano prodotti davvero belli, con immagini, sfondi allegri o eleganti o fantasiosi, e anche se la struttura non è complessa, l’effetto è attraente. Ora però mi sto cimentando nelle relazioni fra tabelle… La tua spiegazione è assai utile. Uso Access 2000, ma mi pare che al livello di cui ti occupi qui, non sia cambiato nulla di sostanziale. Sto pensando di passare alla versione 2010, ma non sono sicura che ne valga la pena. Forse però fornisce maggiori strumenti proprio per l’estetica… Comunque Grazie

        1. Ciao Flavia,
          anche nelle versioni più vecchie di Access riesci a intervenire sulla parte grafica modificando le proprietà dei vari elementi della maschera.
          Troverai indicazioni facili nelle prossime puntate.
          Se ti serve una mano su un aspetto specifico scrivi qui e se posso aiutarti lo faccio con piacere. 🙂
          Grazie a te.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *