Newsgroup: it.comp.appl.access
Titolo: Qry a campi incrociati

Buonasera, ho realizzato una maschera per il riepilogo dei pagamenti,
con origine record una query a campi incrociati:
PARAMETERS [Forms]![ProspettoQuote]![SiNo] Text ( 255 );
TRANSFORM Sum(DatiRicevuteEmesse.ImportoIncasso) AS
SommaDiImportoIncasso
SELECT [Cognome] & " " & [Nome] AS CognoNome,
DatiRicevuteEmesse.Interno, Year([DataRicevuta]) AS AnnoData,
Sum(DatiRicevuteEmesse.ImportoIncasso) AS [Totale di ImportoIncasso]
FROM DatiRicevuteEmesse
GROUP BY [Cognome] & " " & [Nome], DatiRicevuteEmesse.Scala,
DatiRicevuteEmesse.Interno, Year([DataRicevuta]),
DatiRicevuteEmesse.IncassatoSiNo
ORDER BY DatiRicevuteEmesse.MeseComp DESC
PIVOT DatiRicevuteEmesse.MeseComp;
 
Come si può notare ho inserito dei parametri per far si che i dati
vengano filtrati in base all'esito di una casella di riapilogo, ma ciò
non avviene, infatti mi fa vedere tutti i dati senza tener conto del
filtro.
Ho preso spunto dal sito sito di Karl e ho letto i post precedenti in
merito, teoricamente dovrebbe funzionare, ma di fatto non
funziona....mi aiutate a trovare l'errore? Grazie

 ...
 
Devi usare il parametro come criterio, cioè manca la sezione WHERE
per filtrare i dati. Se p.e. il valore del parametro corrisponde al campo
[IncassatoSiNo] sarebbe:
 
...
FROM DatiRicevuteEmesse
WHERE [IncassatoSiNo] = [Forms]![ProspettoQuote]![SiNo]
GROUP BY [Cognome] & " " & [Nome], DatiRicevuteEmesse.Scala,
...
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 

 - Mostra testo citato -
 
l'ho fatto, ma non ottengo nulla nel senso che pur eseguendo un
"me.requery" dopo l'aggiornamento della casella di riepilogo, non mi
restituisce nessun dato.

 restituisce nessun dato.
 
Bene, almeno si cambia qualcosa, no? ;-)
 
Controlla se il valore e tipo di dati di [Forms]![ProspettoQuote]![SiNo]
corrisponde al tipo di dati del campo che filtri.
Puoi anche fare una prova con un valore fisso nella query invece del
parametro.


col valore fisso nella qry funziona.

> col valore fisso nella qry funziona.
 
È un po' difficile aiutarti se non riveli i dettagli concreti come p.e.
di quale tipo di dati si tratta, con quale valore fisso l'hai provato,
quale valore si trova nel controllo [SiNo], quale tipo di controllo è,
cosa ti dà
 
MsgBox  [Forms]![ProspettoQuote]![SiNo]
 
prima del Requery ecc.


 MsgBox  [Forms]![ProspettoQuote]![SiNo]?
ecco in questo caso funziona, infatti se nella casella "SiNo" imputo
si mi da il messaggio "Si" se imputo no mi da il messaggio "No"
Spero di essere riuscito a darti qualche informazione più precisa.

 wrote:
 
Ti spiego come è fatta la maschera "ProspettoQuote" magari può essere
un ulteriore aiuto:
1) Maschera continua
2) Campi: Cognome, Interno, Gennaio, Febbraio.....Novembre, Dicembre.
Nei campi tipo Testo con il nome dei mesi, imputando "Si" dalla
casella combinata "SiNo" viene visualizzato l'importo pagato da ogni
utente per ogni mese, imputando "No" mi visualizza ciò che avrebbe
dovuto pagare e che non ha pagato sempre riferito ad ogni mese. In
pratica la casella "SiNo" risponde all'interrogazione pagato SiNo?
3) Se riesco a risolvere, in un secondo momento, aggiungerò
l'interrogazione oltre che per mese anche per anno.
ma per il momento vediamo di risolvero prima questo problema.


Ancora un'altra cosa quando inserisco il parametro [Forms]!
[ProspettoQuote]![SiNo] nella query,
in modalità struttura, in tutte le caselle di testo della maschera
esce il classico triangolino verde in alto a sinistra
per avvertire che c'è un errore nell'origine controllo delle caselle.
Immagino che questo sia il motivo per cui poi in modalità maschera non
mi da dati.


Se salvi la query e aprila dalla finestra di database o
dal riquadro di spostamento (dipende della tua versione
sconosciuta di Access) qual'è il risultato?
Anche così non corrisponde al testo nella combo?
 
In questo caso copia/incolla il tuo enunciato SQL attuale
e l'origine riga della combo.


 
la ver. di Access è la  2003
se salvo la query funziona perfettamente, infatti richiama la finestra
di dialogo e mi chiede di inserire Si o No dopodiche visualizza i dati
in modo corretto. La stessa query eseguita all'interno della maschera
non funziona.
questo significa che dipende dalla maschera?
Ecco il codice:
PARAMETERS [Forms]![ProspettoQuote]![SiNo] Text ( 255 );
TRANSFORM Sum(DatiRicevuteEmesse.ImportoIncasso) AS
SommaDiImportoIncasso SELECT [Cognome] & " " & [Nome] AS CognoNome,
DatiRicevuteEmesse.Interno, Year([DataRicevuta]) AS AnnoData,
Sum(DatiRicevuteEmesse.ImportoIncasso) AS [Totale di ImportoIncasso]
FROM DatiRicevuteEmesse WHERE (((Year([DataRicevuta]))=2012) And
((DatiRicevuteEmesse.IncassatoSiNo)=Forms!ProspettoQuote!SiNo)) GROUP
BY [Cognome] & " " & [Nome], DatiRicevuteEmesse.Scala,



Ciao Karl, se faccio riferimanto alla mia maschera ossia:
[Forms]![ProspettoQuote]![SiNo]  non funziona
se invece invento il nome della maschera es:
[Forms]![ProspettoQuo]![SiNo]
allora visualizza la finestra di dialogo e mi chiede di inserire si o
no, ma
non fa riferimento alla mia casella combinata "SiNo"
forse perchè non riconoscendo la maschera la bypassa?
che manicomio!!!

 ...copia/incolla ... l'origine riga della combo.
 
Puoi anche creare una semplice query come
 
SELECT IncassatoSiNo, Forms!ProspettoQuote!SiNo,
IncassatoSiNo=Forms!ProspettoQuote!SiNo
FROM DatiRicevuteEmesse
 
per vedere cosa veramente viene dalla combo.


 per vedere cosa veramente viene dalla combo.
con quel codice la combo risponde


Un'altro sospetto sulla tua situazione... invece del
 
Me.Requery
 
prova con
 
Me.RecordSource = Me.RecordSource



Si funziona!!!
 
Approfitto della tua disponibilità per chiederti un'altra cosa sempre
a proposito di questa query:
in questa maschera ci sono dei campi testo prestabiliti con il nome
dei mesi da gennaio a dicembre
in modo da visualizzare cio che ogni utente ha pagato o non ha pagato
mese per mese
il problema è che quando un derminato mese non è avvenuto nessun
pagamento, la casella di testo
segnala l'errore e viene visualizzato - #Nome? - perchè non viene
riconoscita l'origine controllo
c'è un modo per toglere quest'errore e magari visualizzare 0 o niente?
Grazie Karl

 c'è un modo per toglere quest'errore e magari visualizzare 0 o niente?
 
Vedi:
 
 #Errore per riferimento ad oggetti vuoti
 
http://www.donkarl.com/it?FAQ2.16
 
 
Poi devi ancora rinominare le caselle (p.e. gennaio --> txtGennaio ...
dicembre --> txtDicembre). Altrimenti c'è un conflitto se il nome del
controllo corrisponde ad un campo nell'origine ma ha un espressione
come origine controllo.



Karl, non funziona ho messo questo codice:
=IIf(IsError([MeseGennaio]);Null;([MeseGennaio]))
ti ricordo che il nome controllo è MeseGennaio mentre l'origine
controllo è Gennaio
l'effetto è che le caselle testo escono tutte vuote anche là dove ci
sono dei dati

 ...
 
Nell'espressione devi usare il nome dall'origine dati:
 
=IIf(IsError([Gennaio]);Null;([Gennaio]))



ho provato anche in questo modo, ma mi ridà l'errore #Nome?
quando non trova dati inerenti al mese di gennaio

Ciao Fred.
 
Se l'origine dati dei campi proviene dalla query a campi incrociati puoi specificare nell'intestazione delle colonne (proprietà ColumnHeadings) i nomi dei campi da generare: "Gennaio";"Febbraio"; ... ;"Dicembre".
 
HTH
Popi

 ha scritto nel messaggio 
news:17012384.1984.1329470889904.JavaMail.geo-discussion-forums@ynjc20...
Ciao Fred.
 
Se l'origine dati dei campi proviene dalla query a campi incrociati puoi 
specificare nell'intestazione delle colonne (proprietą ColumnHeadings) i 
nomi dei campi da generare: "Gennaio";"Febbraio"; ... ;"Dicembre".
 
HTH
Popi
 
Si funziona...Grazie