Campo calcolato in base all'ultimo record

di il
18 risposte

Campo calcolato in base all'ultimo record

In una form, ho 3 campi "entrate" "uscite" " saldo" quello che voglio è che il saldo del record precedente venga incrementato o diminuito in base all"entrata" e "uscita" del record attuale e il valore così calcolato venga memorizzato nel campo saldo del record attuale, mi potete aiutare a trovare la soluzione? grazie immensamente

18 Risposte

  • Re: Campo calcolato in base all'ultimo record

    Perché credi di dover salvare un saldo...?
    Puoi darci una visione tecnica di questa scelta...?
    La risposta poi sarebbe banale aggiungendo alla tabella un campo saldo precedente da non visualizzare ma da valorizzare come Defaultvalue con il saldo attuale...
    In questo modo avresti sempre riportato il saldo precedente da rendere non editabile per fare il calcolo del saldo attuale.
    Ci sono altri modi, come recuperare l'ultimo saldo... ma io trovo più comodo quanto suggerito.

    Tuttavia ti suggerisco, nel rispondere alle 2 domande iniziali, di riflettere in quanto i calcoli si evita di memorizzarli in tabella ma si può valutare di effettuarli al volo in queries... e si chiamano Running Sum... trattati anche in articoli Ms.
    Ci sono casi in cui la convenienza di salvarli risolve alcuni problemi... ma ne crea molti altri... ipotizza di aver fatto qualche errore contabile o di dover applicare ricalcoli...
  • Re: Campo calcolato in base all'ultimo record

    Dove è la difficoltà?
    Le entrate ed uscite sono progressive e vuoi tenere traccia dei movimenti entrata/uscita/saldo?
    somma algebrica di +entrata -uscita +saldo precedente se prima riga saldo precedente = 0
    Ovviamente il saldo conviene ricalcolarselo ogni volta, non ci si mette molto.
  • Re: Campo calcolato in base all'ultimo record

    Mi potete postare una soluzione pratica? uso access 2003 e gli errori di sintassi non riesco a risolverli
  • Re: Campo calcolato in base all'ultimo record

    Niente pappa pronta... prova a fare qualche test tu e vediamo dove trovi problemi...
  • Re: Campo calcolato in base all'ultimo record

    Quello che non riesco a selezionare è il saldo del record precedente, riesco ad avere il saldo totale di tutti i record ma non riesco a selezionare quello del record precedente
  • Re: Campo calcolato in base all'ultimo record

    Dado per scontato che non vuoi ricalcolarlo ogni volta(speriamo non vi siano mai cambiamenti nei dati già immessi altrimenti...)... non hai proprio capito quello che ti ho suggerito...!

    Cosa non ti è chiaro del metodo che ti ho spiegato che esattamente ti consente di evitare di complicarti la vita dovendo recuperare un valore precedente...?
  • Re: Campo calcolato in base all'ultimo record

    Alla tabella prima_nota ho aggiunto un campo "gestione_cassa_saldo" e nella form "contabilita" ho aggiunto questo campo sul cui valore predefinito ho messo
    "=DLookUp([gestione_cassa_saldo]";"prima_nota";"[ID]=Forms![contabilita]![ID]-1")
    id è il contatore presente nella tabella e riportato nella maschera
    per continuare nel tuo suggerimento, a questo punto dovrebbe uscire in un nuovo record nella casella gestione_cassa_saldo il valore precedente dello stesso campo nel record precedente, ma mi si presenta un bel 0,00 (proprietà del campo in euro con 2 cifre decimali), dove sbaglio?
  • Re: Campo calcolato in base all'ultimo record

    Ti ho detto decisamente tutt'altro... rileggi.
  • Re: Campo calcolato in base all'ultimo record

    Ok! sarà la mia ignoranza ma più si va avanti e piu mi confondo le idee (le poche che ho) quindi rinuncio
    grazie lo stesso
  • Re: Campo calcolato in base all'ultimo record

    Prechè non posti il database solo con un minimo di dati per poter vedere come è gestito?
  • Re: Campo calcolato in base all'ultimo record

    luigionofrio ha scritto:


    Ok! sarà la mia ignoranza ma più si va avanti e piu mi confondo le idee (le poche che ho) quindi rinuncio
    grazie lo stesso
    Provo a semplificarti la cosa i ragionamenti fini, se serviranno dovrai maturarli tu...
    Cancella tutto quello detto sopra.
    Siccome per calcolare il SALDO(Attuale):
    
    SALDO=SaldPrecedente+Entrata+Uscita
    E siccome questo lo farai su BeforeUpdate da codice in quanto vuuoi salvare il calcolo nel Controllo associato in Tabella, devi ricavare il Valore Saldo precedente.
    Facendo la cosa più semplice, anche se meno funzionale
    
    Private Form_BeforeUpdate(Cancel As Integer)
    Dim curSaldoPrec as Currency
    curSaldoPrec = Dlast("NomeCampoSaldo","NomeTabella")
    Me!NomeControlloSaldo.Value=curSaldoPrec + Me!Entrata - Me!Uscita
    Ho dato per scontato che USCITA sia ugualmente a segno positivo esendo con Denominazione USCITA, altrimenti cambia il segno nel calcolo di Somma.

    Tieni presente che ENTRATE ed USCITE possono essere gestite semplicemente usando appunto il SEGNO senza differenziarle, ma chiamando Movimento il Flusso di denaro, che se ha segno [+] sarà in ingresso e se avrà segno [-] sarà in uscita.
    Vedi tu.
  • Re: Campo calcolato in base all'ultimo record

    Ma questo codice lo metto su beforeupdate del controllo campo associato al saldo o su beforeupdate della maschera? ma non esiste in giro un qualche esempio pratico del tipo di quelli che stanno sul sitocomune?
  • Re: Campo calcolato in base all'ultimo record

    luigionofrio ha scritto:


    Ma questo codice lo metto su beforeupdate del controllo campo associato al saldo o su beforeupdate della maschera? ma non esiste in giro un qualche esempio pratico del tipo di quelli che stanno sul sitocomune?
    Non ci credo che fai una domanda simile... ma non perché è scontato... ma perché in quello che ti ho scritto È IMPOSSIBILE AVERE DUBBI l'ho indicato benissimo nel codice dove metterlo...
    Devo capire se sei poco attento o....
    Il sitocomune non funziona da anni... ma Google funziona sempre molto bene.
  • Re: Campo calcolato in base all'ultimo record

    @Alex ha scritto:


    luigionofrio ha scritto:


    Ma questo codice lo metto su beforeupdate del controllo campo associato al saldo o su beforeupdate della maschera? ma non esiste in giro un qualche esempio pratico del tipo di quelli che stanno sul sitocomune?
    Non ci credo che fai una domanda simile... ma non perché è scontato... ma perché in quello che ti ho scritto È IMPOSSIBILE AVERE DUBBI l'ho indicato benissimo nel codice dove metterlo...
    Devo capire se sei poco attento o....
    Il sitocomune non funziona da anni... ma Google funziona sempre molto bene.
    Beh, effettivamente, se leggi attentamente (e neanche poi tanto attentamente) il codice che ti ha postato Alex, e ci trovi scritto

    Private Form_BeforeUpdate

    non dovresti avere dubbi...!!!
Devi accedere o registrarti per scrivere nel forum
18 risposte