Newsgroup: it.comp.appl.access
Titolo: Calcolo saldo in db per gestione conto corrente

Sto facendo un db per gestire il mio conto corrente. In una tabella
MOVIMENTI ho i campi DATA , DARE , AVERE , SALDO.
Ho poi creato una maschera continua che contiene gli stessi campi.
La mia domanda e' questa: come posso fare per far si' che il saldo venga
calcolato automaticamente facendomi la somma di tutti i "DARE" meno tutti
gli "AVERE" ?
Ho provato con la funzione Dsum impostando come origine controllo del campo
saldo "=DSum("[Dare]";"[Movimenti]";"[Data] <= #" & [Data] & "#") -
DSum("[Avere]";"[Movimenti]";"[Data] <= #" & [Data] & "#")
ma ovviamente ho sbagliato infatti il saldo in questo modo mi risulta sempre
lo stesso in tutti i record !! :-/
Tendando altri metodi sono riuscito in qualche modo ma nei giorni con piu'
movimenti (ad esempio due prelievi e un versamento nello stesso giorno) il
saldo mi risulta uguale in tutti i 3 i movimenti.
Qualcuno mi sa aiutare?? Grazie mille ;))
Amministra 2000 Srl

 ha scritto nel messaggio
news:q51n7.156362$TS4.1...@news2.tin.it...

Intanto ti ricordo che in una maschera hai i controlli e non i campi che hai
invece nelle tabelle e nelle queries.
Ti consiglio inoltre di non dare ad alcun campo o controllo il nome DATA: è
un nome riservato di Access, pertanto potresti trovarti davanti ad
inspiegabili malfunzionamenti.
Poi è necessario che tu tolga dalla tua tabella il campo SALDO: in una
tabella è bene non registrare mai dei campi calcolati, altrimenti, come
vedi, ti troverai a gestire inutili mal di pancia alla ricerca, per quanto
riguarda il tuo caso, di una soluzione che non esiste.
E' invece previsto che una query contenga campi calcolati (nel tuo caso il
SALDO).
Inserisci invece nella tua tabella una chiave primaria di tipo contatore che
ti servirà a rendere univoci i record; eviterai così l'inconveniente che hai
lamentato, per il quale tutti i movimenti di una determinata data hanno lo
stesso saldo finale.
A mio avviso devi prima crearti una query nella quale calcolerai il saldo
progressivo del tuo conto corrente; userai quindi tale query come origine
record della tua maschera con visualizzazione a maschere continue: così
facendo, nella maschera ti limiterai a visualizzare il saldo che viene
invece calcolato nella query.
Nella query inserisci anche un altro campo calcolato che risulta
dall'insieme della data e della chiave primaria (aaaammggID).
Nelle funzioni DSum con cui calcoli il saldo, usa come dominio la query
stessa e non la tabella Movimenti e come criteri usa il campo calcolato di
cui al capoverso precedente e non il campo data.
La velocità di esecuzione della query non sarà entusiasmante, ma non conosco
un'altra strada.
In alternativa puoi crearti un report basato sulla tabella Movimenti;
inserisci nel corpo del report un controllo non associato nella cui origine
controllo scrivi:
= DARE - AVERE
Imposta la proprietà Somma parziale di tale controllo a "Su tutto".
Quando vuoi vedere su video la situazione del conto corrente apri
l'anteprima del report.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Grazie, ora funziona tutto, sei stato chiarissimo ;)
Scusa se ho sbagliato terminologia nel descrivere il mio problema ma sono
piuttosto ignorante in materia... (si sara' capito...)
Grazie ancora
