Newsgroup: it.comp.appl.access
Titolo: Sottoreport senza dati...

Ho un problema che non riesco proprio a risolvere, non so più a chi
rivolgermi...
ci sono tre query a campi incrociati che sono l'origine di tre sottoreport
di un report principale che invece non ha origine.
Sul report principale, nel piè di pagina, ho utilizzato delle caselle di
testo per calcolarmi delle somme, vediamo:
                                REPORT PRINCIPALE
Query1 origine del    Sottoreport1
                                campo1 campo2
Query2 origine del    Sottoreport2
                                campo3 campo4
Query3 origine del    Sottoreport3
                                campo5 campo6
                                PIE' DI PAGINA
CampoSomma(campo1+campo2+campo3+campo4+campo5+campo6)
Ok, normalmente funziona tutto...
Quando però in determinate situazioni (purtroppo frequenti) una delle query
non restituisce risultati, il relativo sottoreport non si "carica" (non
viene visualizzato nel report principale) e non me
ne fregherebbe niente se non fosse che il CampoSomma mi da #Errore!
Ho provato con la funzione NZ, ma non ho avuto risultati forse perchè NZ
serve quando ci sono valori Null, invece in questo caso CampoSomma proprio
non trova i campi perchè il sottoreport non è stato caricato nel report
principale...
Ho provato in tutti i modi anche con DCount (conto tutti i record della
query di origine del sottoreport e se sono uguali a 0 il valore del
campo1,2,3...è 0) ma il sottoreport non viene visualizzato lo stesso! Tra
l'altro se apro solo il sottoreport funziona, ma lo stesso inserito nel
contesto [Report, Sottoreport1,2,3 ] non va!
Spero che qualcuno mi possa aiutare, anche perchè non so più a chi chiedere!
Donato
ark...@tin.it


Normalmente la funzione NZ serve a risolvere il tuo problema se viene
opportunamente inserita nei campi della query per evitare che la query non
si presenti vuota al sottoreport.
Ciao, Angelo

 ha scritto nel messaggio
news:Wjxr8.54403$pT1.1...@news1.tin.it...

Nell'origine controllo del controllo CampoSomma prova a scrivere:
= IIf(DCount("*"; "Query1")=0; 0; DSum("[campo1]+[campo2]"; "Query1") +
IIf(DCount("*"; "Query2")=0; 0; DSum("[campo3]+[campo4]"; "Query2") +
IIf(DCount("*"; "Query1")=0; 0; DSum("[campo5]+[campo6]"; "Query3")
Naturalmente nelle tre query a campi incrociati devi usare la funzione NZ
nella determinazione del campo valore, al fine di evitare che le query ti
restituiscano valori Null, ma eventualmente valori a zero.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Grande Roberto! Sempre preciso...
Finalmente ho risolto il problema!
Se non ti disturbo vorrei chiederti lumi su una stranezza che mi succede...
Su una maschera visualizzo (in alcuni campi nel corpo) il risultato di una
query a campi incrociati.
Nel piè di pagina maschera ci sono dei controlli con i totali:
NZ(Somma([campo1]);0;0)
I campi in questione sono di tipo numerico con due decimali.
Ebbene: Nel corpo della maschera tutto a posto; i numeri vengono
visualizzati con i due decimali. Nei campi dei totali, invece, il numero
visualizzato è troncato nel senso che mi visualizza sempre due zeri dopo la
virgola (e non si tratta di un arrotondamento)
Es.                                 27,00    45,00      17,60
                                    228,20      5,50    145,80
Tot. sulla maschera        255,00    50,00    163,00
Tot. sul report                255,20    50,50    163,40
La stranezza è che poi la stessa maschera la stampo con un report che è
identico spiccicato, però mi stampa tutto con i decimali esatti, anche nei
campi dei totali!
Com'è possibile che nella maschera ho questo problema e nel report invece
funziona tutto pur essendo questo identico alla maschera?
A proposito, tutti i campi sia nella maschera che nel report sono Standard,
decimali variabile (ho provato anche con 2)
Spero che mi potrai aiutare anche in questo caso, grazie comunque!
Donato
ark...@tin.it

 ha scritto nel messaggio
news:o1As8.75967$S52.2...@news2.tin.it...

Beh, hai fatto un po' di confusione con i campi e i controlli: ti ricordo
che in una maschera o in un report non ci sono mai i campi (presenti solo
nelle tabelle e nelle query) ma solamente i controlli.
Inoltre ho dei dubbi che per i controlli dei totali usi l'espressione:
NZ(Somma([campo1]);0;0)
in quanto è sintatticamente inesatta: cè un ;0 di troppo e un = di meno.
Scritta invece:
=NZ(Somma([campo1]);0)
è inefficace nel caso in cui ci siano nella query campi con il valore Null.
A mio avviso nell'origine controllo dei controlli dei totali devi scrivere:
= Somma(NZ([campo1]; 0))
A parte questo, che però non è certo la causa della tua "sparizione" dei
decimali nella visualizzazione dei controlli dei totali, non so ipotizzare
il motivo per cui hai ciò di cui ti lamenti, visto che a detti controlli hai
assegnato il formato Standard con due decimali.
Il tutto si comporta come se nella formula che determina i totali di colonna
fosse adoperata anche la funzione Int o Format.


 fosse adoperata anche la funzione Int o Format.
peccato, non riesco proprio a capire da cosa può dipendere, ripeto form e
report sono (o a questo punto sembrano) identiche...
vabbo' ci smanatterò ancora un pò...
Ciao, Donato
ark...@tin.it