novesette2000 ha scritto:
..In un report ho un campo usato per stampare il totale fattura (TotFat)
ottenuto con dati/Origine controllo =([TotImponibileFat]+[TotIvaFat])
che sono altri due campi del report.
Vorrei usarlo per aggiornare una delle due
tabelle usate per stampare il report.
il campo e' nella tabella FATTURETESTATE e si chiama ImportoFatturaTestata.
Se possibile come ?
Nei report non ci sono campi ma controlli (che possono essere associato o meno a campi che sono nelle tabelle e nelle query)
Sull'evento che ti interessa (io ho fatto una prova sull'evento "Corpo_Print") crei una stringa che sarà una Select SQL che dovrà restituire un solo record, quello della fattura che ti interessa.
Poi dichiari ed apri un recordset basato su quella stringa, ne editi l'unico campo dell'unico record esistente e lo valorizzi con il contenuto del controllo TotFat
Tipo
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
Dim strSQL as String
strSQL = "SELECT ImportoFatturaTestata FROM FATTURETESTATE WHERE "
strSQL = strSQL & "campochiave = " Me!controllocampochiave.Value '<-- da personalizzare
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset(strSQL)
rs.Edit
rs("ImportoFatturaTestata").value = Me!TotFat.Value
rs.Update
rs.Close
End Sub
Occhio che l'evento Print del corpo di un report si verifica anche in Anteprima di stampa, il mio è stato solo un test volante. L'esempio è ridotto all'osso, non ho impostato alcun verifica che il recordset non sia vuoto e non abbia più di un record (in teoria se la stringa SQL è fatta bene non ce ne sarebbe bisogno). Devi fare tu le prove, in base al funzionamento del tuo db, per essere sicuro che l'operazione sia eseguita nel momento giusto, a "fattura definitiva", se vuoi che solo allora sia scritto il totale che non sarà più modificato. Poi si possono introdurre altre procedure di controllo per l'eventuale ristampa, ricalcolo ecc. Per ora può bastare la "stampa semplice" della fattura, fatta e finita.