Newsgroup: it.comp.appl.access
Titolo: Query parametriche e report

Struttura: 2 tabelle
StoricoAnnuale (principale)
StoricoMensile (tabella correlata a storico annuale tramite campo
Id_anno)
Avevo precedentemente definito una query da usare come dominio per una
funzione dlookup all'interno di una maschera, e come criterio avevo
posto in conrrispondenza del campo Id_anno: 
[forms]![storicoAnnuale]![id_anno]
Fin qui tutto ok, la funzione dlookup funzionava correttamente
(era definita cosě:
 =DLookUp("Mese";"Query_StoricoMensile";"Incasso_Negozio1=" &
Val(DMin("Incasso_negozio1";"Query_StoricoMensile")))
Ora il problema nasce perché devo applicare la stessa funzione
all'interno di un report che ha dei raggruppamenti: come nella
maschera per ogni anno vengono visualizzati tutti i record relativi ai
singoli mesi, l'unica differenza č che in questo caso non viene
visualizzato un solo anno per volta, ma tutti insieme.
Per la query, in corrispondenza del campo Id_anno, ho definito il
seguente cirterio:
[reports]![storico Annuale]![id_anno]
usando la solita funzione:
 =DLookUp("Mese";"Query_StoricoReport";"Incasso_Negozio1=" &
Val(DMin("Incasso_negozio1";"Query_StoricoReport")))
mi viene restituito un errore (anzichč restituire il mese
corrispondente al minimo incasso visualizza la scritta #errore)
Qualcuno puň gentilmente darmi una mano?
Grazie :)
ps. il problema puň essere che il report, visualizzando piů id_anno
alla volta, non sa quale id passare alla query?
--
Se le persone che parlano male di me sapessero quello che 
dico io di loro, parlerebbero peggio. Jim Morrison
Clicca sul link per contattarmi direttamente da ICQ
http://msg.mirabilis.com/scripts/contact.dll?msgto=32405502
/join #IseekYou

 alla volta, non sa quale id passare alla query?
Nei criteri di una query non si può far riferimento al controllo di un
report, come invece si può far riferimento al controllo di una maschera:
questo è il motivo della tua segnalazione di errore.
Prova a non usare la query come origine record del report, ma direttamente
la tabella e prova a scrivere la query così:
=DLookUp("Mese";"Query_StoricoReport"; "id_anno=" & Me!id_anno & " And
Incasso_Negozio1=" & Val(DMin("Incasso_negozio1";"Query_StoricoReport")))
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Incasso_Negozio1=" & Val(DMin("Incasso_negozio1";"Query_StoricoReport")))
Non funzia: appare una finestra che mi chiede il parametro "Me" e
comunque, inserendo un valore verosimile, mi da #errore....



Prova cosě:
=DLookUp("Mese";"Query_StoricoReport"; "id_anno=" & [id_anno] & " And
Incasso_Negozio1=" & Val(DMin("Incasso_negozio1";"Query_StoricoReport")))
--


Incasso_Negozio1=" & Val(DMin("Incasso_negozio1";"Query_StoricoReport")))
Ho provato, e accade una cosa assurda!
All'inizio avevo solo inserito una casella di testo che resistuisse il
mimino, l'ho provata e... non visualizzava nulla, al che dico, vabè ci
sarà qualche errore, poi faccio caso che cio accadeva solo al primo
anno, mentre al secondo funzionava. Allora ho creato tutte le altre
caselle di testo di cui avevo bisogno, e guarda un po cosa succede:
2002
           Negozio1   Negozio2  Somma
min           no              no            si
max          si                si             no
2003
           Negozio1   Negozio2  Somma
min           si                si             no
max          no              no            si
Se per un negozio non visualizza il mese corrispondente al minimo
incasso, visualizza però il massimo e viceversa. Situazione simmetrica
nell'anno successivo.
Come si suol dire in questi casi: "mistero della fede" :)
Che puo essere successo?


 e Piero si incontrarono nella radura di
Sherwood (it.comp.appl.access), dicendo:
Dimenticavo: ho fatto caso ad una cosa.... per prova ho inserito
manualmente il parametro id anno, e sinceramente mi aspettavo che lo
chiedesse 2 volte, una per ogni anno, invece me lo chiede una volta
sola.... possono essere collegate le due cose?


 ha scritto nel messaggio
news:5rjcmug46l9ll2dnu...@4ax.com...

Beh, dopo aver visto come è fatto il report, confesso di non aver capito
nulla del tuo problema (la DLookup ti restituisce il valore di un mese e tu
parli di si e no ed inoltre fai la somma, ma di che?).
Mi dispiace, ma non riesco a capirci nulla.


 sola.... possono essere collegate le due cose?
Che telo chieda una sola volta è giusto.


Mi dispiace, ma non riesco a capirci nulla.
In effetti non sono stato molto chiaro.....
Per "si" e "no" intendevo dire che "restituisce un valore" - "non
restituisce nulla"
Questi sono i valori che realmente ottengo:
 2002
            Negozio1   Negozio2  Somma
 min                                              1
 max          3                3            
 2003
            Negozio1   Negozio2  Somma
 min           2                2              
 max                                          1
Per somma intendo l'incasso totale dei due negozi: quindi in quale
mese si è ottenuto il massimo ed il minimo incasso totale.


 mese si è ottenuto il massimo ed il minimo incasso totale.
Continuo a non capire bene cosa vuoi ottenere: comunque per il minimo al
livello di negozio prova con:
=DLookUp("Mese";"Query_StoricoReport"; "id_anno=" & [id_anno] & " And
Incasso_Negozio1=" & Val(DMin("Incasso_negozio1";"Query_StoricoReport";
id_anno=" & [id_anno])))
Se ti funziona, per i massimi al livello di negozio dovrebbe essere
sufficiente cambiare Dmin con DMax.
Per determinare il minimo ed il massimo con la somma degli incassi dei
negozi che cosa usi? Ti dovresti essere fatto una query di raggruppamento al
livello di incassi giornalieri, o sbaglio?


livello di incassi giornalieri, o sbaglio?
Niente query di raggruppamento, perché ogni volta che vendo un capo il
suo importo va a finire nelle tabelle storicoannuale e storico
mensile: viene analizzata la data di vendita, su storicoannuale
individuo l'anno (se non c'č lo crea), su storicomensile individuo il
mese (se non c'č lo crea) e aggiungo il prezzo di vendita al campo
Incasso_negozio1 o Incasso_negozio2. Un po macchinoso perň č
indispensabile perché dopo un tot di mesi i capi venduti vengono
cancellati dal magazzino e cosě non potrei sapere quanto ho venduto
negli scorsi anni....
Senti, se ti mando 1 query, 2 tabelle e 1 report e cerchi di capirci
qualcosa? poi postiamo la "soluzione" sul ng.... 
non vedo luuuceeee :(


 non vedo luuuceeee :(
Mi dispiace ma preferisco non farlo.
Perň potresti postare l'esatta struttura delle due tabelle e il codice SQL
della query; quanto a come vuoi il report, penso di aver capito.


della query; quanto a come vuoi il report, penso di aver capito.
StoricoAnnuale
Id_anno			 Contatore	(relazionato a Id_mese)
Anno			 Numerico
Totale_vendita_negozio1 Valuta
Totale_vendita_negozio2 Valuta
Totale_costo_negozio1	 Valuta
Totale_costo_negozio2	 Valuta
Raggruppa		Si/No
StoricoMensile
Id_mese		Contatore
Id_anno			Numerico
Mese			Numerico
Incasso_negozio1	Valuta
Incasso_negozio2	Valuta
Costo_negozio1		Valuta
Costo_negozio2		Valuta
Query_Report_Storico:
SELECT StoricoAnnuale.Id_Anno, StoricoAnnuale.Anno,
StoricoAnnuale.Totale_vendita_negozio1,
StoricoAnnuale.Totale_vendita_negozio2,
StoricoAnnuale.Totale_costo_negozio1,
StoricoAnnuale.Totale_costo_negozio2,
[Totale_vendita_negozio1]+[totale_vendita_negozio2] AS SommaIncassoA,
[Totale_costo_negozio1]+[Totale_costo_negozio2] AS SommaCostoA,
StoricoMensile.Id_Mese, StoricoMensile.Mese,
StoricoMensile.Incasso_negozio1, StoricoMensile.Incasso_negozio2,
StoricoMensile.Costo_negozio1, StoricoMensile.Costo_negozio2,
[incasso_negozio1]+[incasso_negozio2] AS SommaIncassoM,
[costo_negozio1]+[costo_negozio2] AS SommaCostoM,
StoricoAnnuale.Raggruppa
FROM StoricoAnnuale INNER JOIN StoricoMensile ON
StoricoAnnuale.Id_Anno = StoricoMensile.Id_Anno;
Il report:
Intestazione Pagina
Intestazione Raggruppa
Intestazione Anno
	Anno
Intestazione Id_anno
	Totale_vendita_negozio1 
	Totale_costo_negozio1	 
	Totale_vendita_negozio2
 	Totale_costo_negozio2
	SommaIncassoA			(A sta per anno ovviam.)
	SommaCostoA	
Corpo
	Mese
	Incasso_negozio1
	Costo_negozio1
	Incasso_negozio2 	(posizionati uno di fianco all'altro
	Costo_negozio2 		in modo da creare un tabulato)
	SommaIncassoM
	SommaCostoM
Pie di Pagina Id_anno
	Media	=Media([Incasso_negozio1]) =Media([Incasso_negozio2])
		=Media([SommaIncassoM])
	Min	=Min([Incasso_negozio1]) =Min([Incasso_negozio2]) 
		=Min([SommaIncassoM])
	Max	=Max([Incasso_negozio1]) =Max([Incasso_negozio2])
		=Max([SommaIncassoM])
(Accanto ai valori minimi e massimi dei 2 negozi (e della loro somma)
c'è la casella di testo che dovrebbe contenere il numero del mese...)
Pie di pagina Anno
Pie di pagina Raggruppa
	(riepilogo finale di tutti gli anni)
 
			Media	Min	Max
	Negozio1
	Negozio2
	Totale
Pie di pagina pagina
pie di pagina report
Grazie e scusa per il disturbo  :)


 Sherwood (it.comp.appl.access), dicendo:
La soluzione giusta č quella che ti avevo postato il 25/7/2002 alle ore
12:20; solamente che per errore mi era rimasto un doppio apice nella
tastiera.
Insomma, per avere il mese dell'incasso minimo del negozio 1 devi scrivere:
=DLookUp("Mese";"Query_Report_Storico";" Id_anno=" & [Id_anno] & " And
Incasso_negozio1=" &
Val(DMin("Incasso_negozio1";"Query_Report_Storico";"Id_anno=" & [id_anno])))
per avere il mese dell'incasso minimo del negozio 2 devi scrivere:
=DLookUp("Mese";"Query_Report_Storico";" Id_anno=" & [Id_anno] & " And
Incasso_negozio2=" &
Val(DMin("Incasso_negozio2";"Query_Report_Storico";"Id_anno=" & [id_anno])))
per avere il mese dell'incasso minimo dei due negozi devi scrivere:
=DLookUp("Mese";"Query_Report_Storico";" Id_anno=" & [Id_anno] & " And
SommaIncassoM=" & Val(DMin("SommaIncassoM";"Query_Report_Storico";"Id_anno="
& [id_anno])))
per avere il mese dell'incasso massimo del negozio 1 devi scrivere:
=DLookUp("Mese";"Query_Report_Storico";" Id_anno=" & [Id_anno] & " And
Incasso_negozio1=" &
Val(DMax("Incasso_negozio1";"Query_Report_Storico";"Id_anno=" & [id_anno])))
per avere il mese dell'incasso massimo del negozio 2 devi scrivere:
=DLookUp("Mese";"Query_Report_Storico";" Id_anno=" & [Id_anno] & " And
Incasso_negozio2=" &
Val(DMax("Incasso_negozio2";"Query_Report_Storico";"Id_anno=" & [id_anno])))
per avere il mese dell'incasso massimo dei due negozi devi scrivere:
=DLookUp("Mese";"Query_Report_Storico";" Id_anno=" & [Id_anno] & " And
SommaIncassoM=" & Val(DMax("SommaIncassoM";"Query_Report_Storico";"Id_anno="
& [id_anno])))
Mi dispiace della svista e quindi averti fatto perdere cosě del tempo.


Mi dispiace della svista e quindi averti fatto perdere cosě del tempo.
Ma scherzi! Il tempo l'ho fatto perdere io a te :)
Appena metto le manu sul portatile di mio padre ci provo subito,
grazie!! :)
