Newsgroup: it.comp.appl.access
Titolo: Chiudere senza salvare

Come posso inserire un record nella mia maschera
e decidere se salvare o no visto che Access me lo salva automaticamente?
Grazie per la risposta


La maschera ha delle proprietà ed eventi, tra questi c'è "prima di
aggiornare" dove puoi intercettare l'evento (appunto) prima che access
scriva il record nella tabella.
La routine che potresti scrivere è:
'----------------
Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("Confermi il salvataggio dei dati?", vbYesNo + vbInformation,
"Salva i dati") = vbNo Then
    Cancel = True
End If
End Sub
'----------------
Ciao.


C'e' una routine sul Sito Comune, link qua sotto
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
mailto:
it_db_...@usa.net
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

 '----------------
Scusate se mi intrometto .
Non so' se hai visto il mio post di un po' di giorni fa' in cui chiedevo
come comportarsi con quelle maschere che hanno all'interno una
sottomaschera.
Io ho inserito un codice simile sia sulla  maschera principale che nella
sottomaschera con la coseguenza che mi tocca confermare le modifiche due
volte. E' possibile fare in modo di avere una sola conferma modifica record
?


Potresti lasciare solo il controllo sulla maschera principale; mi sembra
superfluo un ulteriore controllo sul salvataggio dei dati nella
sottomaschera, specialmente se in formato "foglio dati".
Mi solo riletto il tuo messaggio precedente (oggetto: Modifica record) e
devo dire che concordo in pieno con quello che ha scritto Giuseppe...
Ciao.


Ma cosi' come fai ad impedire modifiche accidentali nella sottomaschere ?


Qui l'argomento si amplia; per quanto mi riguarda non inserisco nessuna
richiesta di conferma di input se non per le operazioni che coinvolgono
gruppi di record (tipicamente query di comando) e operazioni standard come
la cancellazione del record. Gli errori di inserimento ci sono e ci saranno
sempre, "errare umanum est".
Io credo nel responsabilizzare l'operatore che utilizza la procedura, per 10
anni ho inserito dati con un terminale e credimi, non c'è niente di peggio
che dover inserire migliaia di informazioni (mese x mese) e avere un
programma che ogni record ti chiede la conferma dell'input. Facendo
attenzione a quello che leggevo e inserivo, gli errori riscontrati con le
procedure batch di controllo, erano accettabili rispetto alla percentuale
dei dati inseriti e il tempo impiegato per inserirli. La cosa moooolto
importante è che a valle dell'inserimento ci siano delle procedure che
permettano il controllo sulla validità (e magari coerenza) dei dati inseriti
e flessibilità nel poterli modificare.
Che se ci pensi bene, richiedere la conferma ogni record significa che
l'operatore dovrebbe rileggere ogni volta quello che ha scritto e
confrontarlo con quello che doveva inserire; conosci qualcuno che lo fa?
Mosche bianche...
Gli unici controlli sull'input che puoi prevedere sono quelli dove sai già
che tipo di dati ti devi aspettare (data, numerico intero, etc..) oppure
controllare la coerenza dei dati (se un dato ha ragione di esistere solo se
ne è stato inserito un altro). Già così, per me, risparmi un bel po' di
errori ma non avrai mai la certezza che quello che è stato inserito
corrisponde a quello che doveva essere inserito (es. data di nascita:
10/07/1954 invece di 10/07/1964).
Ciao.