Newsgroup: it.comp.appl.access
Titolo: Problema di aggiornamento su una Maschera

Salve,
Ho una Maschera associata con dei controlli calcolati
Dopo Aggiornamento di uno di questi controlli il Campo "TotSaldo" si aggiorna
ma vorrei che un campo chiamato "Saldo", nel mio record corrente,
si aggiornasse e mettesse lo stesso importo di "TotSaldo".
Niente da fare. Lo fa durante il Debug ma non in esecuzione.
Ho provato ad inserire la proprietà Me.Recalc o Me.Requery
ma a questo punto il Totale lo va a mettere sul primo record o non su quello che era il record corrente. 
Quindi ho provato con la proprietà Bookmark come suggerito dalla guida:
 
Dim Corrente As String
Corrente = Me.Bookmark 
 
    Me.Recalc
 
Me.Bookmark = Corrente
 
Me.Saldo = Me.TotSaldo
 
Ma sulla riga  Me.Bookmark = Corrente 
mi da un errore...

Scusate.... forse sono stato poco chiaro?... 


tralasciando il fatto di salvare in un campo il risultato di una 
operazione...
 
 
Se la tua tabella ha;
 
entrata
uscita
saldo
 
e la tua maschera mi par di capire ha
 
entrata (associato)
uscita (associato)
saldo (associato)
totsaldo (campo calcolato)
 
sul evento after update di entrata/uscita/(o campo che vuoi)
 
imposti
 
me.saldo=me.entrata-me.uscita
 
 
in pratica la stessa formula che usi per il campo calcolato la usi nel 
evento after update del campo che deve generare l'aggiornamento dei conteggi
 
ciao
BFS
 
 
 
 
 
 
 

 
  è per questo motivo che ho scritto
 
"tralasciando il fatto di salvare in un campo il risultato di una 
operazione... "
 
i calcoli li devi fare sempre tramite controlli calcolati o tramite 
formule su query, in questo modo non salvi da nessuna parte un risultato 
che può essere sbagliato in caso di modifica dati non coerente
 
tutto viene calcolato al volo
 
 
ciao
BFS
 


Ciao BFS 
Grazie per la risposta.
Il motivo per cui vorrei salvare il Saldo nel Record
è quello di avere un Saldo per ogni "Data Movimento"
Cioè risalire ad un Saldo in una certa Data.
Esattamente come accade in un Estratto Conto della Banca.
 
Il Metodo più affidabile e coerente sarebbe
     Private Sub ENTRATE_(O USCITE)_After_Update()
     Me.Saldo = Me.TotSaldo 
End sub
 
il problema è che il Controllo Calcolato TotSaldo
Si aggiornerà dopo l'uscita dal record 
o cmq troppo tardi. Con il risultato che Me.Saldo(Record)
sarà quello che c'era PRIMA dell'aggiornamento.
Agendo sulla Proprietà Form.Requery o Recalc
Va a registrare il Saldo sul Primo Record
e non su quello Corrente.
 
Attualmente ho aggirato l'ostacolo in questo modo:
 
Private sub USCITE_After_Update()
    Me.Saldo = (Me.TotSaldo + Me.USCITE)
End sub
 
Private sub ENTRATE_After_Update()
    Me.Saldo = (Me.TotSaldo - Me.ENTRATE)
End sub
 
ma non è un metodo affidabile poiché appena
l'utente dovesse digitare per errore 10 euro al posto di 100, per esempio,
e si accorge dell'errore dopo aver registrato altri record....
Sballano tutti i Saldi!!
 
Forse mi son perso in un bicchiere d'acqua...non so.
Sarebbe una stupidaggine eppure non trovo la soluzione.
 


hai provato a scrivere su google "ms access saldo progressivo" ?
è un argomento discusso mille volte
 
ciao
BFS