Newsgroup: it.comp.appl.access
Titolo: checkbox ancora da aggiornare

ciao a tutti
sono a riprendere un argomento già trattato ma non risolto.
riassumo il problema: maschera con sottomaschera.
Checkbox nella maschera che se spuntata:
Private Sub CasellaControllo32_Click()
If CasellaControllo32 = True Then
      RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
      RIT_ACCONTO = 0
End If
End Sub
esegue questa espressione:
=Somma(nz([QUANTITA]*[PREZZO]*(1-[SCONTO]/100)*0,115))
Il problema è che se modifico quantità o prezzo nella sottomaschera
il valore dell'espressione sopra citata non si aggiorna
(nella sua relativa casella di testo "Rit_Acconto") a meno che
non mi sposto in un'altro record o chiudo e riapro la maschera,

 ha scritto nel 
messaggio 
news:c91f2597-6c7f-4cfc...@r29g2000yqj.googlegroups.com
...



chi esegue questa espressione e dove?


hai scritto del codice associato al click, quella 
che scrivi è un'espressione che pare stia in un'origine dati di un contrrollo 
visto che ha l'= davanti


e allora?


 


anno nuovo, mancanza di chiarezza 
vecchia


 


Antonio



 ha scritto nel messaggionews:c91f2597-6c7f-4cfc...@r29g2000yqj.googlegroups.com...

ciao Antonio
si trova in una casella di testo (TxtRit_Acconto) che ho creato nella
sottomaschera
e che tramite il codice sopra riportato, quando spunto la checkbox
inserisce il dato nella casella di testo "Rit_Acconto" della maschera

 ha scritto nel messaggio 
news:1240a8a7-2d30-44de...@s4g2000yql.googlegroups.com...


MA NON ESISTE PROPRIO!
Il codice scritto sul clic della casella (a parte che io lo metterei su dopo 
aggiornamento, ma vabbeh) modifica solo il controllo RIT_ACCONTO
L'espressione invece aggiorna questa casella di testo sulla base dei 
controlli/campi QUANTITA, PREZZO e SCONTO sui quali non dici un beneamato 
piffero...
Antonio

 Antonio
ok, l'ho modificato in dopo aggiornamento;
beh ho una sottomaschera ( da Tbdettaglio_Fattura) con i seguenti
campi:
iddettagliofattura, idtestatafattura, iddescrizione, ncolli, quantita,
prezzo, iva e sconto ed tutto.

 ha scritto nel messaggio 
news:1382678d-ea42-42f5...@d8g2000yqf.googlegroups.com...

Assurdo!
Allora, nella form principale hai una casella rit_acconto dove finisce il 
contenuto della casella txt_rit_acconto che sta invece nella subform e che 
viene calcolato con una formula
Però questo valore viene rielaborato sulla base del valore della casella di 
controllo!
E' una soluzione assurda e arzicocolata!
Che senso ha avere nella subform una formula che non tiene conto della 
spunta?
E' un dato non significativo.
Allora piuttosto usa nella form principale una formula nella casella 
rit_acconto che tenga conto dei valori nella subform e di quello della 
casella di controllo
Oppure, il calcolo del rit_acconto lo fa sul dopo aggiornamento non solo 
della casella di controllo ma anche di tutti i controlli coinvolti nella 
formula, ricalcolandolo da codice e sbattendocelo dentro
Antonio 

 formula, ricalcolandolo da codice e sbattendocelo dentro
solo da dopo aggiornamento della casella di controllo,
in pratica nella sottomaschera nella casella TxtRit_Acconto
c'è l'espressione =Somma(nz([QUANTITA]*[PREZZO]*(1-[SCONTO]/
100)*0,115))
che quando spunto la checkbox mi esegue il netto fattura per
detrazione della rit. d'acconto.
L'unico handicap e che non riesco ad avere l'aggiornamento immediato
nel campo Rit_Acconto (della maschera) se cambio quantita o
prezzo.

L'unico handicap e che non riesco ad avere l'aggiornamento immediato
nel campo Rit_Acconto (della maschera) se cambio quantita o
prezzo.
Mio dio, situazione kafkiana....
Lascia perdere la formula con l'uguale
Calcola il valore delle caselle ogni volta via codice e metti lo stesso 
codice nei dopo aggiornamento di TUTTI i controlli coinvolti nel calcolo, 
compresa la casella di spunta
Antonio 

 ha scritto nel messaggionews:962d7a9b-36ac-4826...@s5g2000yqm.googlegroups.com...

come si fa?

 ha scritto nel messaggio 
news:b1fadc09-a862-4777...@30g2000yql.googlegroups.com...

Sigh...
Come hai fatto con la casella di controllo
Solo che invece di copiare il valore del controllo, ci metti l'espressione 
che stava nel controllo, quindi facendo riferimento a tutti i controlli 
coinvolti nell'espressione
Antonio 

 ha scritto nel messaggionews:b1fadc09-a862-4777...@30g2000yql.googlegroups.com...

con "=" davanti?


però l'espressione riguarda la sottomaschera
ora io ho:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
    RIT_ACCONTO = 0
End If
End Sub
______
Private Sub Form_Current()
If CasellaControllo32 = True Then
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
    RIT_ACCONTO = 0
End If
End Sub
e devo sostituire così? anche se non credo:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    RIT_ACCONTO = DETTAGLIO.Form!(=Somma(nz([QUANTITA]*[PREZZO]*(1-
[SCONTO]/100)*0,115)))
Else
    RIT_ACCONTO = 0
End If
End Sub
______
Private Sub Form_Current()
If CasellaControllo32 = True Then
    RIT_ACCONTO = DETTAGLIO.Form!(=Somma(nz([QUANTITA]*[PREZZO]*(1-
[SCONTO]/100)*0,115)))



e devo sostituire cos�? anche se non credo:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    RIT_ACCONTO = DETTAGLIO.Form!(=Somma(nz([QUANTITA]*[PREZZO]*(1-
[SCONTO]/100)*0,115)))
Else
    RIT_ACCONTO = 0
End If
End Sub
mamma mia ryc, neanche le basi della programmazione per� eh...
cos� non imparerai mai
allora, vedo che nella sottomaschera hai una sommatoria di tutti i record 
coinvolti per questo usi l'uguale somma
allora =somma deve per forza rimanere
allora nei dopo aggiornamenti dei controlli quantit�, prezzo e sconto scrivi
If forms("form principale").CasellaControllo32 = True Then
    forms("form principale").RIT_ACCONTO = TxtRit_Acconto
Else
    forms("form principale").RIT_ACCONTO = 0
End If
Nel dopo aggiornamento della casella di controllo e nel current invece lasci 
la sintassi di prima visto che gi� sei nella form principale
Antonio 

 ha scritto nel messaggionews:3cda7d58-c2a4-443a...@o14g2000yqe.googlegroups.com...

Grazie Antonio
però ancora non si aggiorna
quando modifico la quantità o il prezzo.
Devo chiudere e riaprire la maschera.

 ha scritto nel messaggio 
news:2d29b35a-6d1d-4ab8...@s5g2000yqm.googlegroups.com...

forza il salvataggio del record corrente ad ogni aggiornamento del campo
Antonio 

 Antonio
ciao Antonio
con: DoCmd.RunCommand accmdSaveRecord
ma ho fatto molte prove senza risultato.
Ho provato  in dopo aggiornamento della sottomaschera e maschera
ma nulla di fatto.
Cosa posso ancora fare?

 ha scritto nel messaggio 
news:4e5fd853-f6e9-4841...@o4g2000yqd.googlegroups.com...

posta cosa hai scritto nei dopo aggiornamento dei controlli in sottomaschera
elenca in quali controlli lo hai scritto
Antonio 

 ha scritto nel messaggionews:4e5fd853-f6e9-4841...@o4g2000yqd.googlegroups.com...

ho provato
in maschera, sottomaschera e nel controllo:
Private Sub Form_AfterUpdate()
DoCmd.RunCommand accmdSaveRecord
End Sub
sicuramente non andava fatto così

 ha scritto nel messaggio 
news:b7d25a5e-b32c-42be...@p1g2000yqm.googlegroups.com...


sicuramente non andava fatto cos�
------------------------------------------
GROAAAAAANNNNNNN
non solo quello ma anche tutto il resto del codice per l'aggiornamento del 
controllo rit_acconto
e poi non su form ma su ogni controllo coinvolto nella modifica solo che se 
lo metti nella sottomaschera il riferimento ai controlli ha una sintassi, 
quello sulla form ne ha un'altra!
E TE L'HO SCRITTO GIA
Antonio

 Antonio
Ciao Antonio
neanche così; vero?
Private Sub Ctl_SCONTO_AfterUpdate()
If Forms("MFattura").CasellaControllo32 = True Then
    Forms("MFattura").RIT_ACCONTO = TxtRit_Acconto
    DoCmd.RunCommand acCmdSaveRecord
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
End Sub
Private Sub PREZZO_AfterUpdate()
If Forms("MFattura").CasellaControllo32 = True Then
    Forms("MFattura").RIT_ACCONTO = TxtRit_Acconto
    DoCmd.RunCommand acCmdSaveRecord
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
End Sub
Private Sub QUANTITA_AfterUpdate()
If Forms("MFattura").CasellaControllo32 = True Then
    Forms("MFattura").RIT_ACCONTO = TxtRit_Acconto
    DoCmd.RunCommand acCmdSaveRecord
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
End Sub


questo nel controllo:
Private Sub CasellaControllo32_AfterUpdate()
   If CasellaControllo32 = True Then
 RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
    DoCmd.RunCommand acCmdSaveRecord


 End Sub
questo nel controllo:
Private Sub CasellaControllo32_AfterUpdate()
   If CasellaControllo32 = True Then
 RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
    DoCmd.RunCommand acCmdSaveRecord
Else
        RIT_ACCONTO = 0
    End If
End Sub
Tutto molto bello, ma OVVIAMENTE devi provare PRIMA a salvare, poi a 
prelevare il valore di txtrit_acconto no?
Antonio 

 ha scritto nel messaggionews:11dc8404-c7dc-465d...@d8g2000yqf.googlegroups.com...

Antonio, non ti seguo


la soluzione è al contrario di quello che sto facendo?

 ha scritto nel messaggio 
news:e242cc0f-deff-48b2...@39g2000yqa.googlegroups.com...

la soluzione č al contrario di quello che sto facendo?
il save deve andare prima di prendere il valore dal controllo
il salvataggio serve per far sentire l'ultima modifica e quindi far 
ricalcolare con la formula il controllo
il risultato ricalcolato lo sbatti in form poi
Antonio

 Antonio
li ho invertiti ma ho sempre errore

 ha scritto nel messaggio 
news:7e4684da-63e1-4f0b...@s4g2000yql.googlegroups.com...


mi si è rotta la palla di vetro
che errore, di grazia?
Antonio

 Antonio
grazie ugualmente
bye

 ha scritto nel messaggio 
news:b7167867-dadc-40ad...@f8g2000yqd.googlegroups.com...

oh manco la fatica di provare a scrivere per esteso quello che hai davanti a 
te e che solo te vedi
mah...
Antonio 

 ha scritto nel messaggio 
news:XJnUo.70$0b....@twister2.libero.it...


 ha scritto nel messaggionews:XJnUo.70$0b....@twister2.libero.it...

Antonio manca ancora qualcosa:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
    DoCmd.Save acFormDETTAGLIO.Form!TxtRit_Acconto
    DoCmd.RunCommand ?????????


 ha scritto nel messaggio 
news:c5d5835c-c7ec-4441...@k22g2000yqh.googlegroups.com...

Quale è il problema e quale è la domanda?
Antonio 

 End Sub
hai provato anche con un:
me.recalc
dai uno sguardo nell'help
-- 
Ciao
Geppo 

 Geppo
ciao Geppo
    DoCmd.Save acFormDETTAGLIO.Form!TxtRit_Acconto
qui mi dice che manca l'oggetto
ma non capisco cosa
Grazie


niente da fare. Non funziona.
Credo che lo lascierò senza che si aggiorni.
??

 wrote:
----cut----
niente da fare. Non funziona.
Credo che lo lascier� senza che si aggiorni.
??
Come ti ho gi� detto dai un occhiata nell'help al metodo:
recalc
-- 
Ciao
Geppo 

 Geppo
ciao Geppo
Si, ma ora anche questo codice mi da errore:
    DoCmd.Save Form, Form_MDettaglio.Form!TxtRit_Acconto
e non trovo il perchè!!!!


    DoCmd.Save acForm, Form_MDettaglio.Form!TxtRit_Acconto
errore: l'ggetto '156, 4' non è aperto
vale a dire la sottomaschera non è aperta,
com'è possibile?

 Geppo
Geppo mettendo solo me.recalc
si aggiorna sempre con tour di ritardo

 ha scritto nel messaggio 
news:5352a2e0-81e3-44a7...@g26g2000vbi.googlegroups.com...

Cioč?
Funziona?
-- 
Ciao
Geppo 

 Geppo
no!
per come mi ha insegnato Antonio dovrebbe essere:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
 DoCmd.Save acForm, Form_MFattura!RIT_ACCONTO
 RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
 RIT_ACCONTO = 0
End If
End Sub
cioè salvo e poi inserisco il valore
ma dice che l'occetto "0" non è aperto
cioè: Form_MFattura!RIT_ACCONTO
Non so che dire,,,,


per come mi ha insegnato Antonio dovrebbe essere:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
 DoCmd.Save acForm, Form_MFattura!RIT_ACCONTO
 RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
 RIT_ACCONTO = 0
End If
End Sub
cioč salvo e poi inserisco il valore
ma dice che l'occetto "0" non č aperto
cioč: Form_MFattura!RIT_ACCONTO
Non so che dire,,,,
Non devi salvare la maschera, devi salvare il record
prova a mettere un setfocus sulla subform e poi ad eseguire il saverecord
Antonio 

Non so che dire,,,,
io neanche, ma ci provo.
-- 
Ciao
Geppo 

 io neanche, ma ci provo.
Regà, non sparate a casaccio
ma che c'entra?
lui ha il problema della formula che non si ricalcola perchè il record è 
ancora in scrittura
cmq, se si perdesse un po' di tempo a leggere l'help, sarebbe chiaro...
Antonio 

 "Geppo" <c...@tin.it.invalid> ha scritto nel messaggionews:ZcOUo.171$EI1...@twister2.libero.it...

Ciao Antonio
l'help di cmd.save?

 ha scritto nel messaggio 
news:6c452ed6-2e4b-4be1...@f30g2000yqa.googlegroups.com...


no parlavo di cosa fanno recalc e refresh
cmq tu fa quello che t'ho detto col setfocus
Antonio

 ha scritto nel messaggionews:6c452ed6-2e4b-4be1...@f30g2000yqa.googlegroups.com...

ciao Antonio
ho provato sia a concetrare il SetFocus in TxtRit_Acconto della
sottomaschera
che in Rit_Acconto della maschera
ultima prova
Private Sub CasellaControllo32_AfterUpdate()
   If CasellaControllo32 = True Then
    Form_MFattura.RIT_ACCONTO.SetFocus
    DoCmd.Save acForm, Me.RIT_ACCONTO
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
   RIT_ACCONTO = 0
End If
End Sub
ma non ci sono riuscito


ciao Antonio
 ho notato che in questo modo:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    Me.RIT_ACCONTO.SetFocus
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
        RIT_ACCONTO = 0
End If
End Sub
si aggiorna, ma con un tour di ritardo.
...............

 ha scritto nel messaggio 
news:ce757038-783d-432d...@d7g2000vbv.googlegroups.com...




Ryc, leggi però tutto quello che scrivo
NON devi salvare la form, ma fare il saverecord dopo aver fatto il 
setfocus!!!!
Antonio

 Antonio
ciao Antonio
dopo aver fatto come mi hai detto:
If CasellaControllo32 = True Then
    Me.RIT_ACCONTO.SetFocus
    DoCmd.RunCommand acCmdSaveRecord
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
    RIT_ACCONTO = 0
End If
End Sub
ho provato anche con:
    Me.Dirty = False
    Forms!MFattura.RecordSource = _
    Forms!MFattura.RecordSource
risultato zero


ciao Antonio
in teoria dovrebbe essere così:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    Forms!MFattura!RIT_ACCONTO.SetFocus
    DoCmd.RunCommand acCmdSaveRecord
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
        RIT_ACCONTO = 0
End If
End Sub
ma non fuziona


ciao Antonio
in teoria dovrebbe essere cosě:
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    Forms!MFattura!RIT_ACCONTO.SetFocus
    DoCmd.RunCommand acCmdSaveRecord
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
        RIT_ACCONTO = 0
End If
End Sub
ma non fuziona
NONONNONONONONNONOOOOOOOOOO!!!
il focus lo devi spostare su un controllo della sottomaschera (forse basta 
anche il controllo sottomaschera) in modo che poi il saverecord agisca sulla 
sottomaschera, salvi le ultime modifiche, di questo ne risenta la formula e 
a quel punto puoi copiarne il risultato!!!!!
Antonio 

 Antonio
Antonio Grazie
ora ci riprovo.


Antonio so che non è il thread giusto ma è una domandina veloce:
ho notato che se nella query di selezione ho delle  formule
il campo data mi obbliga ad inserire "Raggruppamento"
e di conseguenza non mi fa scrivere nel campo della maschera,
mentre se non devo inserire le formule questo non succede.
Cosa mi consigli di fare?
Mille grazie

 ha scritto nel messaggio 
news:ec514a2a-31de-460e...@fm22g2000vbb.googlegroups.com...

Non so di che parli
dai per scontate cose forse discusse altrove e che disconosco
Antonio 


grazie Antonio,
quest'ultimo punto l''ho risolto.


Ciao Antonio
questo è quello che ho fatto, ma non funziona ancora. Perchè?
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    Forms!MFattura!DETTAGLIO.SetFocus
    Forms!MFattura!DETTAGLIO!TxtRit_Acconto.SetFocus
    DoCmd.RunCommand acCmdSaveRecord
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Else
    RIT_ACCONTO = 0
End If
End Sub
Saluti


Ciao Antonio
questo č quello che ho fatto, ma non funziona ancora. Perchč?
Private Sub CasellaControllo32_AfterUpdate()
If CasellaControllo32 = True Then
    Forms!MFattura!DETTAGLIO.SetFocus
    Forms!MFattura!DETTAGLIO!TxtRit_Acconto.SetFocus
    DoCmd.RunCommand acCmdSaveRecord
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
Prova a mettere dopo il saverecord DETTAGLIO.Form.recalc
Antonio

 Antonio
Antonio ti faccio perdere un sacco di tempo,
Ho fatto:
    Forms!MFattura!DETTAGLIO.SetFocus
    Forms!MFattura!DETTAGLIO!TxtRit_Acconto.SetFocus
    DoCmd.RunCommand acCmdSaveRecord
    DETTAGLIO.Form.Recalc
    RIT_ACCONTO = DETTAGLIO.Form!TxtRit_Acconto
ma purtroppo non sente la modifica
e non si aggiorna.


ciao Antonio
mi sono accorto
che eliminando un record
la ritenuta d'acconto non si aggiorna
ho fatto molte prova ma nulla di fatto.
Credevo che inserndo il seguente codice su eliminazione:
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.RunCommand acCmdSaveRecord
    Me.Recalc
    Forms("MFattura").RIT_ACCONTO = Forms("MFattura").TxtRit_Acconto
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
avrebbe funzionato.
Grazie per l'aiuto.

 > questo � quello che ho fatto, ma non funziona ancora. Perch�?




METTILO SU ONCURRENT 

 ha scritto nel messaggionews:2383227b-1797-479d...@d19g2000yqi.googlegroups.com...

grazie Antonio e grazie
Ma come apro la maschera mi da
questo errore:
impossibile eseguire l'azione adesso
e si posiziona su:
DoCmd.RunCommand acCmdSaveRecord

 ha scritto nel messaggio 
news:1b961a0b-e1f6-4d3a...@a10g2000vby.googlegroups.com...


perch� non c'� un record corrente
non so come � fatta la maschera e quindi se ti puoi spostare sul primo 
record, alle brutte metti un on error goto esci
e metti la label esci alla fine del codice
Antonio

 ha scritto nel messaggionews:1b961a0b-e1f6-4d3a...@a10g2000vby.googlegroups.com...

Ciao Antonio
ho elaborato questo codice da inserire
in su corrente della sottomaschera
Mdettaglio, ma non funziona, mi da i seguenti errori:
1-impossibile eseguire l azione adesso
2-comando o azione 'slvarecord' non disponibile
Grazie per l'aiuto


questo è il codice:
Private Sub Form_Current()
On Error GoTo Err_CasellaControllo32_Form_Current
    Dim stDocName As String
    stDocName = "MFattura"
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.RunCommand acCmdSaveRecord
    Me.Recalc
    Forms("MFattura").RIT_ACCONTO = Forms("MFattura").TxtRit_Acconto
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
Exit_CasellaControllo32_Form_Current:
    Exit Sub
Err_CasellaControllo32_Form_Current:
    MsgBox Err.Description
    Resume Exit_CasellaControllo32_Form_Current
End Sub


CUT
ciao Antonio e grazie
se questo codice lo inserisco su click
funziona, ma non su Current.
Per eliminare i record non volevo aggiungere un'altro pulsante.
Come posso fare?
Private Sub Comando39_Click()
On Error GoTo Err_Comando39_Click
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.RunCommand acCmdSaveRecord
    Me.Recalc
    Forms("MFattura").RIT_ACCONTO = Forms("MFattura").TxtRit_Acconto
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
Exit_Comando39_Click:
    Exit Sub
Err_Comando39_Click:
    MsgBox Err.Description
    Resume Exit_Comando39_Click
End Sub


Antonio
mi sono sbagliato, non funziona bene neppure questo.
Si sposta nei record successivi.
help me!

 help me!
Antonio non volevo riscocciarti,
ma ad ogni modo non ottengo l'effetto desiderato.
Ho provato a posizionarmi sull'ultimo record:
docmd.gotorecord, ,aclast
Ho provato con Goto:
Private Sub Form_Current()
On Error GoTo Err_Form_Current
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.RunCommand acCmdSaveRecord
    Me.Recalc
    Forms("MFattura").RIT_ACCONTO = Forms("MFattura").TxtRit_Acconto
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
Exit_Form_Current:
    Exit Sub
Err_Form_Current:
    MsgBox Err.Description
    Resume Exit_Form_Current
End Sub
ma non funziona.

 ma non funziona.
il gotorecord non l'hai messo nel codice postato
Antonio 

 ha scritto nel messaggionews:df04ba34-cb58-410e...@t8g2000prh.googlegroups.com...

Grazie Antonio
 eccolo:
Private Sub Form_Current()
On Error GoTo Err_Form_Current
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.GoToRecord , , acLast


 ha scritto nel messaggio 
news:c4c56e5a-52ee-4590...@q8g2000prm.googlegroups.com...



Exit_Form_Current:
    Exit Sub

Se il problema � il record mancante nella sottomaschera, quel gotorecord 
lavora invece sulla maschera principale
Antonio

 ha scritto nel messaggionews:c4c56e5a-52ee-4590...@q8g2000prm.googlegroups.com...

ciao Antonio
purtroppo niente.
Ho cercato anche in rete, non ci sono riuscito.
Ecco alcune dei tentativi:
    'Dim stDocName As String
    'stDocName = "MDettaglio"
    'Forms!MFattura!MDettaglio.SetFocus
    'DoCmd.GoToRecord acForm, "MDettaglio", acLast
    'Forms("MFattura").SetFocus
    'Forms!("MDettaglio").SetFocus
    'Forms!MFattura!("DETTAGLIO").SetFocus
    'Me.MDettaglio.SetFocus
    'Forms!MFattura!MDettaglio.SetFocus
    'Me!["MDettaglio"].SetFocus
    'Forms!MFattura!DETTAGLIO.SetFocus
    Forms!MFattura.SetFocus
    Forms!MFattura!Form.SetFocus
    DoCmd.GoToRecord acForm, , , acLast



ciao Antonio
puoi aiutarmi, grazie.
Non ho trovato la soluzione.
Anche quest'ultima non va:
Private Sub Form_Current()
On Error GoTo Err_Form_Current
If Forms("MFattura").CasellaControllo32 = True Then
    Forms!MFattura!DETTAGLIO.SetFocus



CUT
ciao Antonio
ho notato che dopo aver inserito nella sottomaschera
me.recalc nel prezzo e quantità, il cursore non scorre come dovrebbe e
togliendolo
non funziona più.
Cosa mi suggerisci?
Grazie
Private Sub PREZZO_AfterUpdate()
On Error GoTo Err_PREZZO_AfterUpdate
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.RunCommand acCmdSaveRecord
    Me.Recalc
    Forms("MFattura").RIT_ACCONTO = Forms("MFattura").TxtRit_Acconto
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
Exit_PREZZO_AfterUpdate:
    Exit Sub
Err_PREZZO_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_PREZZO_AfterUpdate
End Sub
Private Sub QUANTITA_AfterUpdate()
On Error GoTo Err_QUANTITA_AfterUpdate
If Forms("MFattura").CasellaControllo32 = True Then
    DoCmd.RunCommand acCmdSaveRecord
    Me.Recalc
    Forms("MFattura").RIT_ACCONTO = Forms("MFattura").TxtRit_Acconto
Else
    Forms("MFattura").RIT_ACCONTO = 0
End If
Exit_QUANTITA_AfterUpdate:
    Exit Sub
Err_QUANTITA_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_QUANTITA_AfterUpdate
End Sub


ciao Antonio
ho un problema aggiornamento nella sottomaschera,
mi puoi aiutare?
Grazie