Newsgroup: it.comp.appl.access
Titolo: campo calcolato in maschera con sottomaschera

ho una tabella tblanagrafica2007 ed una tabella tblferie2007 collegate per
il campo matr.
ho una maschera ferie con la sottomaschera smferie_2007
in questa sottomaschera ho inserito una casella calcolata con la seguente
formula come origine dati:
=DSum("Nz(studio,0)";"tblferie2007";"matr=" & [matr]) che dovrebbe
aggiornarsi con il totale delle ore esistenti nel campo studio di un
dipendente visualizzato.
il tutto si aggiorna se passo ad un altro dipendente e poi ritorno, ma non
quando inserisco le ore nel campo studio,
fino ad ora mi stava bene, ma adesso che ho messo un controllo su dopo
aggiornamento del campo studio :
If Me!totstudio >= 150 Then
Cancel = True
MsgBox "ATTENZIONE! Il limite delle 150 ore E' STATO RAGGIUNTO!"
End If
quando inserisco un valore la cui ssomma con gli altri record sullo stesso
campo supera il valore di 150, non mi da il messaggio perche
l'aggiornamento non è in tempo reale.
qualche suggerimento?
ps ho inserito la stessa formula anche su corrente della sottomaschera, ma
se supero il valore e mi da il messaggio, si blocca il DB.
grazie
luigi
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 luigi
Prova a gestire l'evento "prima di aggiornare" della sottomaschera;
es.
if DSum("Nz(studio,0)";"tblferie2007";"matr=" & parent![matr]) > 150 then
    Cancel = true
    MsgBox "ATTENZIONE! Il limite delle 150 ore E' STATO RAGGIUNTO!"
    me!studio.setfocus
end if
Ciao.
-- 
Sergio MAZZA 

http://groups.google.it/group/italia.firenze.discussioni/browse_thread/thread/e07a8cad32ced4c2/?hl=it#

 Ciao.
sull'evento prima di aggiornare ho già questo controllo:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me!Dal > Me!Al Then
Cancel = True
MsgBox "OOOOOOHHH!!! HAI SBAGLIATO A INSERIRE LE DATE! CORREGGILE! la data
di fine deve essere successiva a quella di inizio  premi OK e correggi!"
Me!Al.SetFocus
End If
 Me!data_modifica = Fix(Now())
End Sub
e fin qui ok!
ma inserendo prima di end sub il tuo codice,
accidenti!  mi da errore al primo rigo!
 if DSum("Nz(studio,0)";"tblferie2007";"matr=" & parent![matr]) > 150 then
luigi


 luigi
Che errore ti presenta?
Ciao.
-- 
Sergio MAZZA 

 Ciao.
mi da errore di compilazione - errore di sintassi
visualizzando il rigo incriminato in rosso.


 luigi
ho sostituito i ; con le , e pare che il calcolo lo fa, ma non in tempo
reale, cioè mi si aggiorna il totale quando inserisco un nuovo record,
quindi se inserisco un valore con la cui somma supera i 150, al prossimo
record anche se non inserisco nessun valore, mi compare il messaggio di
avvertimento ma non mi permette di fare altro, neanche modificare il
valore che ha superato i 150 per farlo rientrare nel limite.



Sergi i ";" sta in vba
-- 
ac
y-1=x

 y-1=x
Ciao.
-- 
Sergio MAZZA 

 luigi
Se gestici l'evento "prima di aggiornare" il controllo viene effettuato 
prima che il record (e i valori) sia inserito/registrato.
Il Cancel = true, blocca l'operazione di salvataggio permettendoti la 
modifica del valore.
Siamo in questa situazione?
Ciao.
-- 
Sergio MAZZA 

 Ciao.
lo perdono!
dato che me ne sono accorto!
:-))))


 Ciao.



Ciao Luigi
metti accanto a totstudio un'altre 2 txtbox, 1 associata al controllo del 
campo tab
che contiene le ore di studio da non superare. nell'altra facendo la 
differenza avrai il totale disponibile.
dopo aggiornamento di studio fai il controllo se le ore inserite sono 
maggiori.
If Me.studio > Me.oredisponibili Then
        strMsg = "Ah lordooooo c'hai provato eh?"
        Me.studio = ""
        Cancel = True
        Me.studio.SetFocus
        End if
Daniele 

 macchina virtuale; un erorio me po' scappà!!!
Ma tu glielo hai chiesto "gentilmente" di installarsi? E' parecchio 
permaloso.
-- 
ac
y-1=x

 Daniele
No non è studio ma Totstudio su cui fare il controllo.
il problema è che la txtbox totstudio non si aggiorna in tempo reale
quando aggiungi nuovi record nella sottomaschera ma devi passare da un
dipendente all'altro per aggiornarsi.


 ha scritto nel messaggio 
news:epd904$l0n$1...@news.newsland.it...

questo  mi sembra chiaro!
la dsum si aggiorna per matr ...giusto? quindi non può "aggiungersi" le ore 
di "studio".
dovresti, dopo aggiornamento di "studio", fare un requery della maschera.
per questo ti avevo consigliato le due txtbox, anche non visibili.
così facendo il test avviene sulla differenza, in tempo reale.
sempre che abbia capito il problema. :-)
Ciao Luigi
Daniele

 y-1=x
Ciao.
---
Sergio MAZZA

 luigi
Ciao.
-- 
Sergio MAZZA