Newsgroup: it.comp.appl.access
Titolo: CAncellazione record.

Ho una maschera Fatture in cui eseguo tutti i calcoli dei totali che mi 
servono tutti fatti in VBA.
Il calcolo dei totali viene fatto dopo che ci si sposta al record 
successivo, ora vorrei sapere quale evento si usa per eseguire il ricalcolo 
dopo la cancellazione di uno o più record o la modifica di un record.
Ho provato ad eseguirlo nell'evento SU CANCELLAZIONE e DOPO CANCELLAZIONE ma 
non succede niente.
Per favore posso avere un aiuto?
Grazie e saluto tutti.
Lino. 

 ha scritto nel messaggio 
news:6nkOi.135176$U01.1...@twister1.libero.it...

Prima di aggiornare o dopo aggiornamento.
Ciao, Carlo 

 ha scritto nel messaggio 
news:fecm0b$b90$1...@tdi.cu.mi.it...

Gentilissimo ma non funziona purtroppo posso avere qualche altro aiuto.
Grazie e ciao. 

 ha scritto nel messaggio 
news:5PlOi.132085$%k.28...@twister2.libero.it...

Bisognerebbe avere qualche dettaglio in più e magari anche il codice che 
usi, relazioni, tabelle o query coinvolte, ecc.
Ciao, Carlo 

calcolo, vuoi?
e granzie ancora. 


Non ho capito bene, se il calcolo viene eseguito regolarmente spostandosi 
tra i record, per quale motivo, nello stesso modo, non viene eseguito dopo 
aver cancellato un record?
-- 
Ciao
Access

posta anche io
e non riesco a capire perchè invece non funzionano gli eventi.
ciao, lino 


Quando aggiungi un record il calcolo viene eseguito correttamente?
Se si, allora la stessa cosa deve accadere dopo una cancellazione.
Dunque, tu dici che il ricalcolo non funziona che vuol dire? Coma fa a non 
funzionare se dici che quando ti sposti tra i record il calcolo viene 
regolarmente fatto?
cerca di essere piu' chiaro e fornisci qualche info in piu'.
-- 
Ciao
Access 

Scusate se rispondo solo ora ma sono stato fuori sede per lavoro.
Io, praticamente, eseguo il codice per il calcolo dopo l'evento che 
praticamente mi porta la nuovo record, a questo punto avviene tutta la serie 
di calcoli che ho predisposto - e fin qui è tutto in regola.
Quando effettuo la cancellazione del singolo record (o più record) ho 
inserito esattamente lo stesso codice (con il copia-incolla) nell'evento SU 
CANCELLAZIONE (ho provato anche su altri eventi come suggerito da Carlo 
Costarella) ma non succede niente.
A questo punto booo!!!!
Grazie ancora per l'aiuto.
Lino Fornaro 


L'hai inserito su questo evento?
Private Sub Form_Delete(Cancel As Integer)
...quo metti il tuo codice
me.recalc
end sub
-- 
Ciao
Access

cancellazione ed anche qui il calcolo non cambia.
Grazie ancora e soprattutto per la pazienza.
Lino Fornaro 

 Grazie ancora e soprattutto per la pazienza.
La maschera è associata a una tabella o query?
Perfavore posti il codice che utilizzi?
-- 
Ciao
Access 


Invio il codice che utilizzo spero che sia chiaro, ed ancora grazie:
'Procedura per il calcolo automativo dei totali dopo aver abbandonato il 
campo"peso"
Dim totman, Tot_Imp, IVA_imponibile_Merce, Numero_pezzi, imp_IVA, 
totmediamanif As Single
Dim totGen, totdeipezzi, Tot_Ag, Totale_Imponibile, Tot_I_C, 
Importo_Tot_Prev, Total_Merce As Single
Dim Ag_800, PURO_800, Ag_925, Puro_925, Oro_Puro_750, Oro_750, Tot_Rim, 
Tot_Ag_Puro, Tot_Costo_AG As Single
Dim Tot_Costo_Au, Tot_provvig, media_ven, Importo_Ag, Importo_Au, 
Importo_Metalli, Costo_IVA, media, provv_agente_X_contanti As Single
    'Eseguo le somme totali
    totman = DSum("[Manif_scontata]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")
    totdeipezzi = DSum("[Pezzi]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")
    Ag_800 = DSum("[peso]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]='800'")
    Ag_925 = DSum("[peso]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]='925'")
    PURO_800 = DSum("[peso_puro]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]='800'")
    Puro_925 = DSum("[peso_puro]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]='925'")
    Oro_750 = DSum("[peso]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]='750'")
    Oro_Puro_750 = DSum("[peso_puro]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]='750'")
    Tot_Rim = DSum("[diff_ac_vend]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")
    Tot_Ag_Puro = DSum("[peso_puro]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]and 
[Tit_art]<>'750'")
    Tot_Ag = DSum("[peso]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed] 
and [Tit_art]<>'750'")
    Tot_provvig = DSum("[tot_provv]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")
    media_ven = DAvg("[Manif_scontata]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")
    Costo_IVA = DSum("[Importo_IVA]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Peso_Puro_800] 
= PURO_800
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Au_750] 
= Oro_750
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Au_750_Puro] 
= Oro_Puro_750
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Ag_925] 
= Ag_925
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Ag_800] 
= Ag_800
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Peso_Puro_925] 
= Puro_925
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Peso_Ag_Puro] 
= Tot_Ag_Puro
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Manifattura] 
= totman
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Manifattura_Lorda] 
= totman
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Pezzi] 
= totdeipezzi
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Margine_Lordo] 
= Tot_Rim
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Provv_Agente] 
= Tot_provvig
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Ag] 
= Tot_Ag
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Importo_IVA] 
= Costo_IVA
'Se nei calcoli ci campi con valori "null", trasforma il "null" in 0
      Importo_Ag = Tot_Ag_Puro * [Forms]![Msk_Fatt_Immediata]![Quot_Ag]
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Importo_AG] 
= Importo_Ag
      Importo_Au = Oro_Puro_750 * [Forms]![Msk_Fatt_Immediata]![Quot_Oro]
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Imp_oro] 
= Importo_Au
      Importo_Metalli = Nz(Importo_Ag) + Nz(Importo_Au)
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Importo_Metalli] 
= Importo_Metalli
      Totale_Imponibile = Nz(Importo_Metalli) + Nz(totman)
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Tot_Imponibile] 
= Totale_Imponibile
      Tot_I_C = Totale_Imponibile + Costo_IVA
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Fattura] 
= Tot_I_C
      Importo_Tot_Prev = Tot_I_C
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Importo_Pagamento] 
= Importo_Tot_Prev
      Total_Merce = Nz(Importo_Metalli) + Nz(totman)
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_merce] 
= Total_Merce
      media = 
([Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_merce]) 
/ 
([Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Pezzi])
      [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Media_Vendita] 
= media
If [Forms]![Msk_Fatt_Immediata]![Cod_Agente] = "01" Then
   [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Margine_Lordo] 
= (DSum("[diff_ac_vend]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")) 
 - 
Nz([Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Importo_Sconto_Contanti])
   [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Provv_Agente] 
= 0
Else
   provv_agente_X_contanti = DSum("[tot_provv]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]") 
* 
Nz([Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Sconto_Contanti]) 
/ 100
   [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Margine_Lordo] 
= (DSum("[diff_ac_vend]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]") 
 - DSum("[tot_provv]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]")) 
 - 
Nz([Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Importo_Sconto_Contanti])
   [Forms]![Msk_Fatt_Immediata]![Smk_Msk_Totali_FattImmClienti]![Totale_Provv_Agente] 
= DSum("[tot_provv]", "[Tbl_Dett_Fatt_Immed]", 
"[Num_Progr_Fatt_Immed]=[forms]![Msk_fatt_immediata]![Num_Progr_Fatt_Immed]") 
 - Nz(provv_agente_X_contanti)
End If
'Se nei calcoli ci campi con valori "null", trasforma il "null" in 0
If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Manifattura) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Manifattura = 
0
   End If
  If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Peso_Puro_800) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Peso_Puro_800 = 0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Importo_Metalli) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Importo_Metalli = 
0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Au_750) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Au_750 = 0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Au_750_Puro) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Au_750_Puro = 
0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Totale_Imp_oro) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Totale_Imp_oro = 0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Ag_925) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Ag_925 = 0
   End If
  If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Ag_800) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Ag_800 = 0
   End If
  If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Peso_Puro_925) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Peso_Puro_925 = 0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Totale_Ag) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Totale_Ag = 0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Importo_AG) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Importo_AG = 0
   End If
   If 
IsNull(Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Peso_Ag_Puro) 
Then
   Forms!Msk_Fatt_Immediata.Smk_Msk_Totali_FattImmClienti!Tot_Peso_Ag_Puro = 
0
   End If