Newsgroup: it.comp.appl.access
Titolo: Record tipo estratto conto...

Buongiorno a tutto l'ng, e inizio scusandomi per il fatto di avere tempo fa
già fatto questa domanda , anche se meno specifica e, soprattutto, molto
meno chiara di quanto mi accingo a fare ora (almeno spero!)
Nel frattempo ho studiato un po' le risposte che mi deste all'epoca, ma ho
ancora molte perplessità sull'argomento.
Riassumo i fatti:
Data una query che chiameremo Spese Query, basata su una tbl spese, con un
campo Dataspesa (formato data), uno di descrizione, e due di valuta "Er" ed
"Ur"(uno per le entrate ed uno per le uscite)
io vorrei creare un report ed anche una maschera che selezionando
all'apertura del reportle date di inizio e di fine del calcolo del report,
questi mi mostrasse una casella di testo nell'intestazione, contenente la
cassa al momento della data di inizio da me inserita; mi spiego meglio:
ammesso che la query contenga dati che riguardino tutto il 2001 ed il 2002
fino ad oggi, io potrei volere un "estratto" dei movimenti fatti nel Gennaio
2002, ed allora quella casella di testo dovrebbe fornirmi il saldo di cassa
al 31/12/2001.
Allora ho iniziato ad inserire nella casella criteri del campo Dataspesa
della qry la seguente: >=[Inserire Data di Inizio] And
<=IIf(IsNull([Inserire data Finale]);#31/12/2030#;[Inserire data Finale]),
per farmi chiedere ad ogni apertura del report la data di inizio da cui
calcolare e, se la data finale non dovesse essere inserita, arrivare fino
alla fine dei dati) (a proposito ho inserito quella data del 2030 perchè non
sapevo come dirgli da qui alla fine);dopodichè in un campo non associato
creato nell'intestazione del report, ho inserito questa origine:
=DSum("[Er]-[Ur]";"Spese Query";"[DataSpesa]<'[Inserire Data di Inizio]'");
ovviamente la cosa non funziona e il campo è un continuo error.
Ho provato anche a dare una data finita tipo [DataSpesa]<#31/12/2001#,
giusto per capire se il problema risiedesse nel criterio della query, ma la
cosa continua a non funzionare.
Il problema che mi pongo ammesso che con questultima ipotesi funzionasse, è
il seguente:
dato che in apertura di report io do il comando di filtrare tutti i dati da
una data ad un altra, come può il mio campo calcolato andare a pescare dati
che, per espresso ordine sono stati eliminati dalla query?
e cioè se come nell'esempio di prima io do come data di inizio il 1/1/2002,
nel campo calcolato DSum, i record precedenti a quella data saranno 0, e
quindi la somma sarà sempre 0....
Ovviamente c'è qualcosa che non va in questo mio ragionamento, ma non riesco
proprio a capire cosa....
AIUTATEMI vi prego!!

ciao! io come neofita mi sono imbattuto diverse volte nel problem da te
esposto. Per quanto riguarda mastrini ed estratti conto parto sempre dal
1/1/xx quindi non mi pongo il problema, invece in un foglio di prima
nota mi serviva il saldo precedente di cassa;, ho creato una query che
prendesse in considerazione i movimenti "prima" della data da prendere
in considerazione, poi in un sottoreport ho fatto i calcoli relativi ed
il saldo finale diventa in saldo iniziale del report voluto. Non so se
mi sono spiegato; non è molto ma ti assicuero che la mia procedurina
viaggia. Auguri. ;)

 ha scritto nel messaggio
news:a5gguv$ivo$1...@gossip.excite.it...


 ancora
potresti aprire il report da una maschera che ha due text box in cui
inserisci le due date.
in base alle date inserite modifichi il recordsource del report alla sua
apertura...
è un pò macchinosoda preparare, devi scrivere qualche riga d codice e se
apri il report senza la maschera di selezione, forse t salta fuori qualche
errore, ma ottieni una cosa abba flessibile e anche pratica da usare

rieccomi!  scusa, ma comunque devi inserire sia la data di inzio report
che la data di fine report; ad esempio la prima query che serve x
calcolare il saldo prende come criterio <DataIniziale e la seconda
Between da => DataIniziale And DataFinale. Cioe inserisci solo una volta
le due date! Ciao

 ha scritto nel messaggio
news:3TKe8.16268$Ns4.7...@news2.tin.it...

Io farei così.
Se la tabella che contiene i dati si chiama tblSpese ed ha la seguente
struttura:
ID                Contatore e chiave primaria
Dataspesa    Data/ora
Er                Valuta
Ur                Valuta
Mi creerei una maschera chiamata Maschera1 con visualizzazione a maschera
singola e che non abbia origine record; in Maschera1 inserirei due caselle
di testo non associate chiamate rispettivamente DataInizio e DataFine; in
Maschera1 inserirei anche un pulsante di comando per aprire il tuo report
chiamato Spese Report: a fronte dell'evento "Su clic" del pulsante di
comando genererei il seguente codice VBA:
    Dim stDocName As String
    stDocName = "Spese Report"
    DoCmd.OpenReport stDocName, acPreview
Ora farei in modo che la tua query di selezione Spese Query abbia il
seguente codice SQL:
SELECT tblSpese.Dataspesa, tblSpese.Descrizione, tblSpese.Er, tblSpese.Ur
FROM tblSpese
WHERE (((tblSpese.Dataspesa) Between [Forms]![Maschera1]![DataInizio] And
Nz([Forms]![Maschera1]![DataFine],DMax("Dataspesa","tblSpese"))))
ORDER BY tblSpese.Dataspesa;
La query Spese Query sarà l'origine record del report Spese Report.
Nell'intestazione di Spese Report inserirei una casella di testo non
associata che visualizzerà il saldo precedente; come origine controllo di
tale casella di testo scriverei:
=DSum("Er-Ur";"tblSpese";"Dataspesa<#" & [Forms]![Maschera1]![DataInizio] &
"#")
A questo punto apri Maschera1; digita nella casella di testo DataInizio la
data del primo movimento che vuoi stampare; digita nella casella di testo
DataFine la data dell'ultimo movimento che vuoi stampare : se in DataFine
non digiti nulla, verrà presa la data più alta dei movimenti presenti in
tblSpese; pigia il pulsante di comando, spero che tu veda ciò che volevi.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:a5j3qv$bs8$1...@gossip.excite.it...


 capito!!
Sicuramente per cominciare lui scrive DOPO il quoitng!!!
Antonio

 ha scritto nel messaggio
news:XB9f8.40163$fa5.1...@twister2.libero.it...


 ha scritto nel messaggio
news:gGof8.39635$v7.14...@twister1.libero.it...


 Sono davvero ignorante ma....che cos'è il quoting??!!
E' la parte di messaggio a cui stai rispondendo e che lasci nel messaggio
stesso.
Si deve scrivere DOPO il quoting, o tutt'al più in mezzo, tipo botta e
risposta...
Antonio

 Ancora grazie e buon lavoro!
Hai ragione, ho commesso un errore: nell'origine controllo della casella di
testo del report che visualizza il saldo precedente devi scrivere:
=DSum("Er-Ur";"tblSpese";"Dataspesa<#" &
Format([Forms]![Maschera1]![DataInizio];"mm/gg/aaaa") & "#")
In Access il secondo termine di confronto di una equivalenza SQL va espresso
sempre nella forma anglosassone, ed i criteri di una funzione DSum altro non
sono che una proposizione WHERE del linguaggio SQL e ne rispettano la
sintassi.
Ora cosě dovrebbe funzionare.
