Newsgroup: it.comp.appl.access
Titolo: report/Form campo calcolato esistono differenze?

Buona giornata a tutti,
il mio problema è il seguente:
Questa formula in un Report mi da #Errore:
=IIF(IsNull([GetRac];0;[GetRac]+[Rimanenza])
GetRac è dato da = [RaccoltaGettoni].[Form]![SommaDiContati] che è il totale
dei gettoni raccolti
Se il totale è uguale a null dovrei mettere lo 0 altrimenti fare la somma
con la rimanenza_ spiegazione inutile.
La stessa formula nella Maschera funziona.
Dove stà l'errore? Ci sono differenze tra campi calcolati in una form ed in
Report?
Grazie della risposta
Ale

 Ale
Ciao Ale.
A prima vista sembrerebbe che ti manca una parentesi tonda chiusa:
=IIF(IsNull([GetRac]);0;[GetRac]+[Rimanenza])
In alternativa non può andarti bene:
= Nz([GetRac])+Nz([Rimanenza])
?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:uCpQ6.20182$WT5.7...@news.infostrada.it...

Riciao Roberto, la parentesi è stato un mio errore non l'avevo riportata.
Ho provato anche la tua soluzione e non funziona.
Nel momento stesso in cui GetRac è = null, mi compare #errore.
Forse manca qualche collegamento.
Il Report è collegato al sottoreport (dove trovo la mia SommaDiContati) con
la Data.
Quindi se in quella data non ho nessun valore mi da #errore, devo cambiare
qualcosa?
Ho provato a rifare tutto, a creare prima il sottoreport e poi ricollegarlo
al report, il risultato è uguale.
Ma io mi chiedo perchè lo stesso procedimento nella Form creata
precedentemente funziona.
Grazie Ale


Forse ora ho capito il tuo problema.
Una sottomaschera anche se vuota esiste e quindi puoi comunque far
riferimento ai suoi controlli che risulteranno vuoti.
Non č la stessa cosa per un sottoreport che, se vuoto, non viene stampato,
ovvero possiamo dire impropriamente che non "esiste" e quindi in quel caso
non puoi far riferimenti ai suoi controlli.
Penso che puoi risolvere ricavandoti il valore GetRac con una DSum e la
funzione Nz.
Prova a dare uno sguardo al thread intitolato "Calcoli in report" aperto il
18/5/2001 alle ore 12:00 da Andrea C., che aveva un problema simile al tuo.


 ha scritto nel messaggio
news:9etfsn$3tm$1...@half.spin.it...

Ho dimenticato di dirti che #errore mi compare già in GetRac se il campo è =
a Null, e dopo logicamente di conseguenza nell'altro.
Io ho provato a mettere una formula IIF già
qui:([RaccoltaGettoni].[Form]![SommaDiContati] ), ma niente da fare.
Mentre nella Form la casella rimane = a null, evitando l'errore qui mi
compare la scritta #errore.
Forse ti ho dato qualche indizio?
Grazie.
Ale


Ok ho letto, ma non riesco a capire come sfruttarlo, non riesco a capire
perchè inserire il Dsum.
Se io devo far comparire lo 0, quando il sottoreport è uguale a Null?
Il campo di collegamento fra Report e SottoReport è la data, solo che in
certe date non ci sono movimenti di alcun tipo, mi sfugge qualcosa, e non so
cosa.
Ho provato a fare così:
=Nz(DSum("[SommaDiContati]"; "[RaccoltaGettoni]";"Data =" & [Data])) nessun
risultato.
Scusa ma non riesco a trovare un punto di intesa.
Grazie
Ale

 Ale
Se l'oggetto che è origine record del sottoreport si chiama RaccoltaGettoni
e tra i suoi campi c'è un campo numerico chiamato SommaDiContati (campo che
vuoi sommare) e un campo di tipo Data/ora chiamato Data.
Se nel report principale esiste un controllo chiamato anche lui Data e che
ha come formato Data in cifre, prova con:
=Nz(DSum("[SommaDiContati]";"RaccoltaGettoni";"Data=#" & [Data] & "#");0)


 ha scritto nel messaggio
news:W0vQ6.7$HK....@news.infostrada.it...

Rieccomi al tuo cospetto.
Questa mattina ho provato subito, il risultato assurdissimo è il seguente:
Ho registrato 2 mesi di lavoro, la formula sull'80% dei record funziona sul
restante mi da = a 0.
Cioè lo 0 compare sia dove dovrebbe comparire ma anche dove non dovrebbe
comparire.
Non ha molto senso, sono andata a rivedermi i campi data, sono identici, ho
rivisto il Sottoreport RaccoltaGettoni, lo ho rifatto, riporta tutte le
registrazioni.
Risultato Sottoreport RaccoltaGettoni
    Data          SommaDiContati
1) 02/04/01            1638
2) 03/04/01            1500
3) 04/04/01            1300
4) 06/04/01            1450
5) 08/04/01            1250
Risultato del campo calcolato nel Report
    Data          SommaDiContati
1) 02/04/01                  0
2) 03/04/01                  0
3) 04/04/01            1300
4) 06/04/01            1450
 * 07/04/01                  0
5) 08/04/01            1250
I risultati riportati giusti sono 3)4)5), * anche perchè mi mette uno 0
nella data in cui non c'erano movimenti.
1)2) non capisco perchè non mi riporta il valore esatto dei dati, se lo
riporta nel restante documento?
Non so cosa dire.
Grazie per il tempo dedicatomi.
Ale

Al di là di tutti i suggerimenti, mi è sembrato che forse si può fare un
tentativo diverso.
Di solito il problema incontrato è tipico nei report, e ho visto che nelle
formule, delle volte si fa riferimento al nome dei campi invece al nome dei
controlli. Non ho potuto vedere bene, ma mi sembra di aver visto questo..
Comunque in molte circostanze ho superato il problema legando il report, che
deve darmi il risultato finale, ad una query che calcola il tutto.
Se nella Query ho impostato la formula ho dei valori "Null" allora imposto
la formula "iif"
Es:  =iif([SommaDiContanti]is null;0;[SommaDiContanti])
Comunque la cosa si vede male se non si ha il DB
ciao
Vittò

 ha scritto nel messaggio
news:W0vQ6.7$HK....@news.infostrada.it...

Ci sono alcuni angeli buoni che mi aiutano, così sono riuscita ad avere la
soluzione,
=Nz(DSum("[SommaDiContati]";"[RaccoltaGettoni]";"Data=#"
&Format$([Data];"mm/gg/aa") & "#");0)
Da sola non ci sarei arrivata, grazie dell'aiuto.
Non capisco ancora perchè però la formula prima funzionava solo su alcuni
record e non su altri.
Grazie mille di tutto.
Alessia

 > [CUT]

Non ti nascondo che la cosa mi lascia molto perplesso.
Però, poiché il problema può solo dipendere dai criteri della funzione DSum,
ultima ratio, prova così:
=Nz(DSum("[SommaDiContati]";"RaccoltaGettoni";"Data=#" &
Format([Data];"gg/mm/aaaa") & "#");0)
