Proteggere un database Access da modifiche o cancellazioni accidentali

di Gianluca Tinti

scritto il

Come evitare che i dati visualizzati all’interno di una maschera di Access possano essere modificati o eliminati per errore.

Utilizzando un qualsiasi software per database a tutti sarà capitato di modificare o addirittura cancellare per errore dei dati; in questi casi, se si tratta di informazioni importanti per la propria attività, il danno sarà notevole. Proviamo dunque, con questo tutorial, a studiare un metodo per minimizzare questo rischio.

=> Come creare un database clienti in Access per area geografica

Noi lavoreremo su un database di esempio costituito da una tabella contenente i Clienti di una ipotetica Azienda.

Scarica l’esempio completo

Per meglio gestire i dati in essa contenuti è stata creata una maschera (nell’esempio si chiama “MASK_CLIENTI”). Ovviamente la procedura seguente potrà, da ciascuno di voi, essere adattata alla propria maschera di Access.

Adesso l’archivio non presenta nessun tipo di protezione, per cui se immaginassimo di modificare accidentalmente un dato, non troveremo nessun impedimento e il dato in questione verrebbe alterato, magari senza neanche accorgercene.

Proviamo ora ad inserire un’icona sulla quale avremo la possibilità di fare click. Il risultato di quest’operazione dovrà essere il blocco delle informazioni contenute nell’archivio al fine di evitare modifiche non volute. Ovviamente disattiveremo l’icona non appena dovremo (per necessità) apportare modifiche.

Come simbolo noi abbiamo scelto l’immagine di un lucchetto (chiuso e aperto), che potete eventualmente scaricare. Ognuno di voi potrà comunque liberamente scegliere altre immagini.

Inserire le immagini

1. Attivare la barra multifunzione HOME
2. Click sulla freccetta che punta verso il basso nel pulsante VISUALIZZA (Figura 2)
3. Click su Visualizzazione struttura

4. Attivare la barra multifunzione “STRUTTURA”
5. Click sul pulsante “IMMAGINE” (Figura 3)

6. Al posto del puntatore del mouse compare lo stesso simbolo rappresentato nel pulsante, quando accade questo fate click nel punto della maschera dove volete che compaia l’immagine.
7. Selezionare l’immagine (“Close.jpg”) e inseritela nella maschera.
8. Ripetete le operazioni precedenti per inserire anche l’immagine Open.jpg (Figura4)

Dare un nome alle immagini

Diamo ora un nome alle due immagini appena inserite al fine di poterci riferire ad esse con precisione in un secondo momento, quando avremo la necessità di associare loro delle funzioni ben precise.

1. Facciamo doppio click veloce sulla immagine rappresentata da un lucchetto chiuso
2. Viene mostrata la finestra delle proprietà
3. Posizioniamoci sulla scheda “ALTRO”
4. In corrispondenza della proprietà NOME ELEMENTO diamo un nuovo nome cancellando quello preesistente. Scriviamo “CHIUSO” come nuovo nome.
5. Ripetiamo la stessa operazione sull’altra immagine (quella del lucchetto aperto), digitiamo “APERTO” come nuovo nome.

Facciamo ora in modo che, all’apertura della maschera, Access impedisca la modifica delle informazioni. In seguito utilizzando le immagini inserite in precedenza, saremo noi a decidere quando apportare i cambiamenti.

Utilizziamo a tale scopo le proprietà “AllowDeletions”, “AllowEdits” e “AllowAdditions”, che gestiscono rispettivamente le cancellazioni di dati, le modifiche e l’inserimento di nuove informazioni.

Operiamo in questo modo:

1. Fare doppio click veloce sul pulsante posto all’incrocio dei due righelli della struttura maschera (Figura5)

2. Viene visualizzata la finestra delle proprietà della maschera (Figura6)

3. Posizioniamoci sulla scheda EVENTO e aiutandoci se necessario con la barra di scorrimento, facciamo click su “SU APERTURA”, compare accanto un pulsante con tre puntini: clicchiamolo, a questo punto viene mostrata la finestra “SCEGLI GENERATORE”, mostrata in figura7

4. Selezioniamo “Generatore di codice” e facciamo click su OK
5. Ci appare l’editor di Visual basic (Figura8)

6. Esattamente dove è posizionato il cursore, cioè tra “PRIVATE SUB…” e “END SUB”, scrivete:
APERTO.Visible = False
CHIUSO.Visible = True
Form_MASK_CLIENTI.AllowDeletions = False
Form_MASK_CLIENTI.AllowEdits = False
Form_MASK_CLIENTI.AllowAdditions = False
Refresh

7. Chiudiamo l’editor VB
Ricordatevi che APERTO e CHIUSO sono i nomi delle immagini (le abbiamo rinominate noi in precedenza), e Form_MASK_CLIENTI è invece il nome della form contenente la maschera. Quando utilizzerete questo codice per un database diverso da quello utilizzato in questo tutorial, rammentatevi di scrivere “FORM_” seguito dal nome della maschera.

Questo script impedirà all’utente di modificare I dati dell’archivio ogni volta che si apre la maschera.

=> Maschere a schede con Access per archiviare dati

Scegliere quando sbloccare i dati

La procedura seguente ci consentirà di associare alle due immagini inserite in precedenza le funzioni di sblocco e blocco manuale dei dati.
1. Facciamo doppio click sull’immagine del lucchetto chiuso
2. Nella finestra “Proprietà” (Figura6) posizionarsi nella scheda EVENTO
3. Posizionarsi nella proprietà “Su doppio click” e cliccare sul pulsante coi puntini a lato
4. Viene mostrata la finestra “scegli generatore” (Figura7), facciamo click su “Generatore di codice” e poi su OK.

5. Nell’editor di Visual Basic (Figura8), esattamente dove è posizionato il cursore, cioè tra “PRIVATE SUB…” e “END SUB”, scrivete:
APERTO.Visible = True
CHIUSO.Visible = False
Form_MASK_CLIENTI.AllowDeletions = True
Form_MASK_CLIENTI.AllowEdits = True
Form_MASK_CLIENTI.AllowAdditions = True
Refresh

6. Chiudiamo l’editor VB.
Ora ripetiamo quasi per intero la procedura precedente, applicandola però all’altra immagine. Quindi:
7. Facciamo doppio click sull’immagine del lucchetto aperto
8. Nella finestra “Proprietà” (Figura6) posizionarsi nella scheda EVENTO
9. Posizionarsi nella proprietà “Su doppio click” e cliccare sul pulsante coi puntini a lato
10. Viene mostrata la finestra “scegli generatore” (Figura7), facciamo click su “Generatore di codice” e poi su OK.
11. Nell’editor di Visual Basic (Figura8), esattamente dove è posizionato il cursore, cioè tra “PRIVATE SUB…” e “END SUB”, scrivete:
APERTO.Visible = False
CHIUSO.Visible = True
Form_MASK_CLIENTI.AllowDeletions = False
Form_MASK_CLIENTI.AllowEdits = False
Form_MASK_CLIENTI.AllowAdditions = False
Refresh

12. Chiudiamo l’editor VB
Proviamo ora a visualizzare la maschera (col solito pulsante VISUALIZZA della barra multifunzione HOME).
Appena la apriamo ci accorgiamo subito che i dati sono bloccati, cioè non possiamo modificare, eliminare o inserire i dati. L’unica immagine visualizzata è il lucchetto chiuso, indicante appunto il blocco dati. Provando a fare doppio click sul lucchetto questo si apre e a questo punto possiamo eseguire le modifiche del caso (ci è consentito). Per ribloccare i dati non dobbiamo fare altro che fare un doppio click sul lucchetto aperto e questo si richiuderà.

=> Gestione delle fatture attive con Access

Posizionare e dimensionare correttamente le immagini

Per avere l’illusione del movimento del lucchetto che si apre e chiude possiamo dimensionare le due immagini in maniera identica e poi sovrapporle perfettamente.

A questo scopo:
1. Posizioniamoci nella struttura della Maschera
2. Facciamo doppio click sulla prima immagine, per esempio quella col lucchetto chiuso.
3. Nella finestra proprietà (Figura6) posizioniamoci sulla scheda FORMATO, qui scriviamo il valore 1,5 sulle proprietà LARGHEZZA e ALTEZZA, e il valore 4,2 nella proprietà DA MARGINE SUPERIORE. Infine scrivere il valore 11,5 in corrispondenza della proprietà SINISTRA.


Scarica l’esempio da personalizzare

Se usate un database differente da quella del nostro tutorial ricordatevi di adattare queste ultime due proprietà alla maschera del vostro file.