Tratto dallo speciale:

Un database del personale con Access 2007

di Gianfranco Budano

27 Maggio 2008 09:00

Gestire l'anagrafica del personale creando un database Access personalizzato sulla base delle nostre esigenze

Creare un’applicazione Access che consenta di conservare ordinatamente l’anagrafe del personale della nostra azienda è cosa relativamente semplice, oggi ancora più veloce grazie alle funzionalità di creazione automatica di oggetti introdotte con Office 2007.

Sarà possibile archiviare i dati anagrafici dei dipendenti aziendali, conservando anche informazioni relative alla qualifica, alla struttura di appartenenza e allo stato di servizio.

In questo tutorial creeremo da zero un database Access. Una volta acquisiti gli strumenti di base, si potrà personalizzare o ampliare le funzionalità dell’applicativo al di là di quelle fornite nel file di esempio allegato. È comunque possibile scaricare ed utilizzare subito l’applicativo con le funzionalità standard.

Esempio di anagrafica personale
scarica l’esempio

Come utilizzare l’allegato

L’applicazione si apre direttamente sulla maschera FGestione che permette di inserire le informazioni relative ai dipendenti: Matricola, Cognome, Nome e Codice Fiscale; i dati relativi a Qualifica, Struttura e Servizio sono già precaricati e resi disponibili da caselle combinate che, una volta aperte facilitano la scelta grazie alla presenza del campo relativo alla descrizione.

Chi volesse, tuttavia, aggiungere o cancellare una delle voci già caricate può farlo; cliccando sul relativo bottone si renderà disponibile la maschera scelta dove sarà possibile effettuare l’aggiunta di altre voci o la cancellazione di voci non utilizzate.

Attenzione però a quando effettuiamo le cancellazioni. Ad esempio, se alcune voci relative alla qualifica sono già state utilizzate per qualche dipendente, non è consigliabile cancellarle tout court poiché perderemmo delle informazioni importanti.

Costruire l’applicativo

Prima di iniziare facciamo una breve premessa sulle convenzioni che utilizzeremo per l’assegnazione dei nomi alle nostre tabelle e ai campi in esse contenuti. Una prima convenzione consiste nell’aggiungere un prefisso al nome degli oggetti, che ci consenta di ricordare che tipo di oggetti sono:

  • T per le tabelle
  • Q per le query
  • F per le maschere (dall’inglese: form)
  • R per i report
  • M per le Macro

Così, per esempio, chiameremo la prima tabella TAnagrafica piuttosto che semplicemente Anagrafica. Il motivo di questa scelta convenzionale risiede nella necessità di distinguere la natura dell’oggetto direttamente dal nome e dalla necessità di ritrovarsi gli stessi raggruppati nelle caselle combinate e di riepilogo delle maschere e dei report.

Le convenzioni servono per fare ordine e poter capire il significato dei nomi anche quando si riprende in mano un progetto dopo un po’ di tempo.

Un esempio di convenzione per i nomi dei campi consiste nell’utilizzo, laddove possibile, di due parole sintetizzate prendendo, di ognuna, le prime tre consonanti, di cui la prima in maiuscolo. Se le consonanti non fossero sufficienti utilizziamo la prima vocale. Per il campo Codice Fiscale, ad esempio, utilizziamo la parola CdcFsc; per il campo relativo al nome del dipendente, invece, utilizzeremo la parola NmeDpn.

Naturalmente è una delle tante convenzioni possibili, come quella di scrivere tutti i nomi per esteso sotituendo gli spazi con il trattino basso (‘_’). In questo caso il nome del dipendente si indica con il campo nome_dipendente.

Schema concettuale

Lo schema concettuale del nostro database è abbastanza semplice. Abbiamo suddiviso le informazioni in quattro tabelle:

  • TAnagrafica – tabella principale che contiene le informazioni relative ai dati anagrafici del dipendente
  • TQualifica – contiene tutti i nomi delle diverse qualifiche e a ciascun nome associa un codice
  • TStruttura – contiene tutti i nomi delle strutture di appartenenza e un codice di identificazione per ciascuna
  • TServizio – contiene tutti gli stati di servizio previsti e associa un codice a ciascuno stato

I codici presenti alle ultime tre tabelle vengono utilizzati nella tabella principale e servono per associare, a ciascun dipendente, una particolare qualifica, la struttura di appartenenza e lo stato di servizio.

IdeQlf, ad esempio, che sta per “identificativo della qualifica”, è in relazione con l’omonimo campo della tabella TQualifica e serve a fornire a query, maschere e report una descrizione comprensibile del codice. Analoghe indicazioni valgono per i campi IdeStr e IdeSrv.

Creare le tabelle

Cominciamo col creare la tabella principale, dove memorizzare le informazioni relative al personale dipendente presso la nostra azienda: l’anagrafica.

Creare una tabella in Access 2007 è molto semplice: dal “Ribbon” scegliere il menu “Crea”. Fra le diverse opzioni abbiamo scelto la creazione nella modalità struttura. Premete quindi il pulsante “Struttura tabella” se volete crearne una personalizzata.

La tabella TAnagrafica sarà quindi composta dai campi: matricola, nome, cognome, codice fiscale, qualifica, struttura e stato di servizio.

I primi campi sono contenuti direttamente nella tabella TAnagrafica mentre gli ultimi tre fanno riferimento alle altre tabelle.

Può succedere di aver necessità di rappresentare la situazione del personale in servizio e di avere un certo numero di unità, assenti per lunghi periodi, che necessitano di essere escluse dall’analisi. Il dato relativo alla tipologia di servizio ci darà la possibilità di filtrare queste unità ed evidenzierà la causa dell’assenza che ptrebbe essere riconducibile ad una malattia, a un’assenza per aspettativa, per gravidanza o semplicemente perché cessato definitivamente per pensionamento o altro motivo.

È importante sottolineare, a questo proposito, che l’anagrafica del personale è assimilabile ad una fotografia scattata in un dato momento della vita dell’azienda, per sua natura non è adatta a darci informazioni sulle dinamiche storiche dell’entità rappresentata. Se si ha necessità di conservare i fenomeni storici occorrerà progettare qualcosa di diverso o almeno effetture dei backup della tabella magari con cadenza periodica.

Da segnalare, infine, la necessità di individuare una chiave primaria che renda univoca l’identificazione di un dipendente; si è deciso, pertanto, di abbinarla alla “Matricola” del dipendente rendendo così impossibile la duplicazione del campo ed evitando di commettere l’errore di assegnare la stessa matricola a due dipendenti diversi.

Completata questa prima fase del lavoro sarà necessario creare altre tre tabelle (TQualifica, TStruttura e TServizio).

Al termine di questa fase vogliamo dare alle tabelle la struttura relazionale che abbiamo ipotizzato nello schema concettuale, struttura che andrà creata accedendo al tool per la definizione delle relazioni tra tabelle: dal menu Strumenti database>Relazioni nel gruppo “Mostra/Nascondi”.