Come controllare l’inserimento dati

Microsoft Access, come sappiamo tutti, salva automaticamente i dati. Se sto inserendo/modificando dati di una maschera, il record viene salvato se:

  • premo il selettore record
  • mi sposto su un altro record
  • clicco a di fuori della maschera stessa, per esempio su un pulsante
  • chiudo la maschera
  • chiudo Access

Può essere una buona cosa, personalmente non mi piace. Come sviluppatore il mio obiettivo è creare un’interfaccia che aiuti l’utente. Un utente non si aspetta che i dati vengano automaticamente modificati senza che gli venga richiesta un’esplicita conferma. (Per esempio, in Excel, Word e altri programmi posso chiudere senza salvare, se ho il dubbio di aver modificato qualcosa per errore).

Vorrei una maschera con un pulsante Salva che riepiloghi all’utente le modifiche apportate, indicando per ogni campo il valore precedente e quello corrente, con la possibilità di confermare le modifiche o annullarle.

conferma_modifica

Alla modifica di un dato, imposto in rosso il colore del testo e applico il grassetto all’etichetta del dato (potrei fare altro: applicare un bordo più spesso, cambiare il colore di sfondo ecc.)

E poi al momento di salvare visualizzare un messaggio di conferma.

Nota che il messaggio si verifica in qualunque caso, non solo se premo il pulsante Salva, anche se chiudo la maschera, se chiudo Access, se clicco sul selettore record o se spasso al record successivo/precedente.

Che codice VBA devo scrivere?

1) dopo l’aggiornamento di un dato, controllare se l’utente ha effettivamente modificato il valore originario presente in tabella:
in caso affermativo,

  • impostiamo rosso il colore del testo
  • applichiamo il grassetto all’etichetta del relativo controllo

2) prima di aggiornare il record, controllare se almeno uno dei dati
è stato modificato. In caso affermativo,

  • creiamo una variabile con l’elenco dei dati modificati,
    indicando il valore originario e quello modificato
  • chiediamo conferma all’utente se vuole salvare le modifiche
    in caso affermativo,
    – salviamo il record
    – impostiamo nero il colore del testo
    – togliamo il grassetto all’etichetta del relativo controllo
    altrimenti
    – annulliamo le modifiche apportate
    – impostiamo nero il colore del testo
    – togliamo il grassetto all’etichetta del relativo controllo

Nei prossimi video impareremo a scrivere il necessario codice VBA per sapere come controllare l’inserimento dati.