Nel mio caso il codice fiscale non può variare in nessun caso, per questo ho inserito il blocco.
il database lo sto creando io ma poi verrà utilizzato da più persone.
avevo creato il pulsante salva che semplicemente fa questo
DoCmd.RefreshRecord
MsgBox "Dati ente modificati", 48, "Messaggio"
DoCmd.Close acForm, "maschera_modifica_dati_ente"
DoCmd.OpenForm "maschera_principale", acNormal, "", "", , acNorma
mentre il pulsante annulla differiva per l'assenza della prima riga di codice (il refresh)
ho capito però che access salva in automatico, tanto che se nel codice del pulsante salva vado a cancellare la prima riga che ho scritto sopra (il refresh) comunque viene salvata la modifica dei campi
ora ho trovato una soluzione, non so se sia una strategia corretta, ma è l'unica che mi è venuta in mente per aggirare il salvataggio automatico.
semplicemente carico un recordset con la tabella interessata dal database corrente
Set db = CurrentDb
Set rsEnte = db.OpenRecordset("ente", DB_OPEN_DYNASET)
poi cerco in rsEnte il record in cui il codice fiscale è quello inserito nella ricerca e quando lo trova modifico i dati della maschera con i dati del recordset in modo che se nella maschera erano stati cambiati io sovrascrivo la modifica. poi procedo con la chiusura della maschera e apro la maschera principale. non li scrivo tutti che diventa lungo e ripetitivo, ne riporto uno e poi l'ho ripetuto per tutti i campi cambiando il nome del campo
rsEnte.MoveFirst
Do Until rsEnte.EOF
If rsEnte("CODICE_FISCALE") = CODICE_FISCALE Then
denominazione = rsEnte("denominazione") ……….e così via per tutti gli altri campi
infine
End If
rsEnte.MoveNext
Loop
rsEnte.Close
DoCmd.Close acForm, "maschera_modifica_dati_ente"
DoCmd.OpenForm "maschera_principale", acNormal, "", "", , acNormal
cosa ne pensate di questa soluzione?
io l'ho testata e funziona, se anche per voi è una buona soluzione, potrebbe essere allora d'aiuto a coloro che si troveranno in una situazione simile alla mia