Newsgroup: it.comp.appl.access
Titolo: Conferma salavataggio record.

Un saluto cordiale a tutti.
Ho un problema che mi sta compromettendo la riuscita di un programma.
Ho una maschera realizzata per registrare le eventuali modifiche al record
selezionato in una casella combinata, premetto che la maschera contiene
anche tre sottomaschere che visualizzano i dati relativi al record.
Ho inserito un tasto a cui è associato il seguente codice per la conferma
del salvataggio dei dati cambiati:
Private Sub Form_BeforeUpdate(Cancel As Integer)
   Dim Cancel As String
   Dim retValue As Integer
   Dim strTtl As String
   Dim strMsg As String
   strTtl = "Salvare il record?"
   strMsg = "I dati sono cambiati." & vbCrLf & _
            "Vuoi salvare le modifiche?"
   retValue = MsgBox(strMsg, vbQuestion + vbYesNoCancel, strTtl)
   Select Case retValue
       Case vbYes
           'non fare nulla
       Case vbNo
           DoCmd.RunCommand acCmdUndo
       Case vbCancel
           Cancel = True
   End Select
End Sub
In pratica quando voglio salvare i dati cambiati tutto funziona bene anche
se cambio i dati nelle sottomaschere, ma se invece non voglio salvare le
modifiche mi viene fuori il seguente messaggio: Comando o 'Azione' Annulla
non disponibile.
Ciò succede solo quando cerco di cambiare i dati nelle relative
sottomaschere.
Vi sarei tanto grata se poteste aiutarmi.
              Saluti
              Rita

 ha scritto nel messaggio
news:9tpb8e$jbk$1...@nreadb.inwind.it...

oddio secondo me se cerchi di cambiare i dati nelle sottomaschere dipende se
e come sono collegate le tabelle e anche se e come sono collegate le
sottomaschere
poi invece per il codice
non ho capito perchè c'è un 'non fare nulla??????
in secondo luogo il problema ti sorge se premi "no", giusto?
però in effetti leggendo il tuo post non credo ci siano problemi di codice
anche se io non lascio mai vuoto di solito ci metto doCmd.CancelEvent.
dipende solo da quello che ho scritto sopra...
by
stwe

 ha scritto nel messaggio
news:NyWL7.169002$sq5.8...@news.infostrada.it...

Ti ringrazio per i consigli stwe, per quanto riguarda le relazioni tra
tabelle posso
illustrartele così:
- La tabella A è collegata alle tabelle B, C e D con una relazione da uno a
molti;
- Inoltre la tabella A è collegata alla tabella E con una relazioni uno ad
uno e quest'ultima alla tabella F con una relazione da uno a molti.
In tutte le relazioni da uno a molti è applicata l'integrità referenziale.
Il codice scritto sopra non agisce sulle sottomaschere che rappresentano la
parte molti della relazione nel caso non si vogliano accettare le modifiche.
Sono davvero nei guai se non riesco  a risolvere questo problema e non so
come fare.
Access a volte è un pò carogna!
Saluti
Rita.

 wrote in message
news:9tpb8e$jbk$1...@nreadb.inwind.it...


 ha scritto nel messaggio
news:9tpb8e$jbk$1...@nreadb.inwind.it...

Mi sembra che la cosa più facile da fare sia quella di generare il tuo
codice VBA, oltre che a fronte dell'evento "Prima di aggiornare" della
maschera principale, anche a fronte degli eventi "Prima di aggiornare" delle
tre sottomaschere.
Così facendo però, se modifichi un dato per ogni sottomaschera ed un dato
per la maschera principale, il messaggio di conferma ti comparirà 4 volte.
D'altra parte avendo scelto la gestione degli aggiornamenti con la tecnica
delle maschere/sottomaschere, il comando Cancel = True lo devi dare per
ognuna delle maschere per cui hai effettuato l'aggiornamento dei dati e devi
darlo all'interno delle routines evento "Prima di aggiornare" di ogni
maschera.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:9tu11h$501g$1...@stargate1.inet.it...

Grazie mille Roberto, provo subito.
Ciao Rita.

 ha scritto nel messaggio
news:9tu3v9$sb7$1...@nreada.inwind.it...

Grazie Alessandro per i suggerimenti, ma non sono riuscita ad adattare il
tutto alle mie esigenze.
Il codice è un pò complicato.
Grazie Roberto, in effetti avrei risolto il problema anche se, come ho
impostato io il tutto con maschere e sottomaschere, non mi sembra molto
professionale.
Chiedo solo a titolo di curiosità come si sarebbe potuto fare in
alternativa, evitando di rispondere a diversi messaggi di conferma.
Come avreste fatto voi?
Grazie
Rita.


Potresti provare ad approcciare il problema con le transazioni (vedi help),
ma non è certo la cosa più facile di Access.


 ha scritto nel messaggio
news:LGeN7.198891$sq5.9...@news.infostrada.it...

Grazie Roberto, è chiaro che non riuscirei a fare il programma in maniera
diversa da come ho fatto.
In ogni caso andrò a leggermi l'help......dopo di che tenterò il suicidio
con il manuale di Access attaccato al collo...
Ciao
Rita

 Rita
