Newsgroup: it.comp.appl.access
Titolo: Difficoltà con query e date

Salve a tutti,
ho creato un database in cui vengono inseriti dei prodotti lavorati e delle
quantità ogni giorno.
Ora quello che vorrei ottenere è un report settimanale, visibile come
maschera e come report, diviso per giorni.
Ho creato una query a campi incrociati che sembra soddisfare la mia
esigenza, ora l'unico problema è che non accetta come criterio:
Between [Forms]![Maschera]![DataInizio] And [Forms]![Maschera]![DataFine]
Come posso risolvere l'inconveniente?
C'è un altro modo per arrivare allo stesso risultato?
Grazie a chiunque risponderà
Gennaro

 ha scritto nel messaggio
news:9t3k0m$jbm$1...@nreada.inwind.it...

Per una query a campi incrociati è obbligatorio esplicitare i parametri di
selezione.
Apri la griglia di struttura della query a campi incrociati e dal menu Query
scegli il comando Parametri...; nella finestra che ti compare esplicita il
tipo dati dei parametri; insomma nella prima colonna della prima riga della
finestra scrivi:
Forms!Maschera!DataInizio
e nella seconda colonna della stessa riga seleziona:
Data/ora
e nella prima colonna della seconda riga della finestra scrivi:
Forms!Maschera!DataFine
e nella seconda colonna della stessa riga seleziona:
Data/ora
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Roberto
Ciao Roberto,
grazie per la
risposta, funziona bene.
Ora la difficoltà è un'altra. Devo fare, su
questa query a campi incrociati, un report da inviare via mail.
Il
problema è proprio il report. Ho trovato qualcosina nel sitocomune sotto la
voce report ma non ci sono riuscito.
Hai qualche consiglio utile?
Grazie
Gennaro
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha scritto nel messaggio
news:212Z141Z48Z2Y1...@usenet.iol.it...

Devo immaginare che il tuo problema sia quello della variabilità delle
colonne della query a campi incrociati e del relativo nome, con tutte le
conseguenze che ne derivano nel preparare il report.
Penso che dovresti trovare uno spunto per la risoluzione del tuo problema
nel database di esempio allegato alla FAQ di RoDAgo e Sib intitolata "Report
dinamici per rappresentazioni a campi incrociati" pubblicata sul Sito Comune
nella Sezione Reports.
Dovresti, altrimenti darci maggiori dettagli su tale query; se, ad esempio
il tuo problema lo permette, tramite la proprietà Intestazione colonne
potresti rendere costante il numero delle colonne ed il loro nome: avresti
risolto così tutti i tuoi mal di pancia con il report.
Se quanto sopra non fosse sufficiente, dovresti ricorrere necessariamente ad
un report personalizzabile dinamicamente alla sua apertura. La cosa l'ho
discussa nelle ultime settimane nel NG (non mi ricordo più con chi). Mi
dispiace di non poterti dare le coordinate di tale thread, è già stato
cancellato automaticamente dal mio newsreader.
La tecnica consiste nel inserire nel corpo del report delle caselle di testo
non associate, di cui conosci solo il nome ed il numero massimo; quindi
nella routine di apertura del report devi leggere i nomi dei campi della
query ed usarli per inserirli come origine controllo delle caselle di testo
non associate di cui sopra.


Roberto
Ciao Roberto,
grazie, la soluzione l'ho trovata
dando l'intestazione delle colonne. Il report è ok.
Ho inserito come
"intestazione riga" la data mentre come "intestazione colonna" l'oggetto e
come "valore" le quantità. Così va bene. Se invece invertissi intestazione
riga e intestazione colonna non va più bene a causa della data. Sarebbe più
comodo ma non trovo la soluzione, hai qualce idea?
Come si fa ad ottenere
nella query e quindi nel report il valore 0 al posto del valore Null?
Ho
inserito nella query a campi incrociati
IIF(IsNull ([SommaDiQuantità]); 0;
[SommaDiQuantità]) ma non va.
Che ne dici?


 Gennaro


TRANSFORM
Sum(Nz(NomeTabella.Quantità,"*")) AS [Il valore]
La mia "TRANSFORM"
attuale è:
TRANSFORM Sum(Query_Lavorati.SommaDiQuantità) AS
SommaDiSommaDiQuantità
l'ho modificata così:
TRANSFORM
Sum(NZ(Query_Lavorati.SommaDiQuantità, "*")) AS [Valore]
ma non mi
restituisce il valore 0. Dove ho sbagliato?


 ha scritto nel messaggio
news:212Z141Z48Z2Y1...@usenet.iol.it...

Qualche errore l'ho scritto anche io.
Per prima cosa creati una tabella chiamata GiorniSettimana che abbia questa
struttura:
IDGGSet            Numerico e chiave primaria
GGSet                Testo
Carica questi valori nella tabella GiorniSettimana:
IDGGSet        GGSet
----------        ---------
1                    Domenica
2                    Lunedì
3                    Martedì
4                    Mercoledì
5                    Giovedì
6                    Venerdì
7                    Sabato
Se la tabella su cui basi la query a campi incrociati si chiama Tabella1 ed
ha la seguente struttura:
ID                Contatore e chiave primaria
Data1            Data/ora
Quantità        Numerico
Riga              Numerico
Se nella query devi sommare il campo Quantità.
Se l'intestazione di riga è il campo Riga.
Se l'intestazione di colonna è il giorno della settimana del campo Data1.
Se vuoi il valore zero nei campi della query vuoti
Il codice SQL della query a campi incrociati che ti serve è il seguente:
TRANSFORM Nz(Sum(Tabella1.Quantità),0) AS [Il valore]
SELECT Tabella1.Riga
FROM Tabella1
GROUP BY Tabella1.Riga
PIVOT DLookUp("GGSet","GiorniSettimana","IDGGSet=" &
Format(Tabella1.Data1,"w")) In
("Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica");
