Newsgroup: it.comp.appl.access
Titolo: nome colonne in report

Buonasera a tutti.
Il mio problema è questo.
Ho creato una query a campo incrociati che mi crea per ogni mese in
formato gennaio 10, febbraio 10, marzo 10 ecc... il totale della
quantità fatturata per articolo.
Nel report ho creato quindi uun controllo con origine descrizionebene,
e dodici controlli con origine gennaio 10, febbraio 10, marzo 10 eccc.
Se non ho fatturato un mese o come ora ho fatturato solo gennaio,
all'apertura il report non trova i nome dei controlli dei mesi che non
ho fatturato e mi appare il messaggio "il modulo di gestione di MS
Access non riconosce "[febbraio 10]" come nome di campo o espressione
valida. Quindi il report si apre regolarmente solo se ho fatturato
tutti i 12 mesi dell'anno 2010.
Che origine posso dare alle 12 colonne, in modo che mi mostri solo le
colonne dei mesi che ho fatturato senza darmi quel messaggio?
Grazie anticipate e buon weekend.
Giuseppe.

 ha scritto nel messaggio 
news:1130bc94-947b-49e1...@u41g2000yqe.googlegroups.com...
Buonasera a tutti.
Il mio problema � questo.
Ho creato una query a campo incrociati che mi crea per ogni mese in
formato gennaio 10, febbraio 10, marzo 10 ecc... il totale della
quantit� fatturata per articolo.
Nel report ho creato quindi uun controllo con origine descrizionebene,
e dodici controlli con origine gennaio 10, febbraio 10, marzo 10 eccc.
Se non ho fatturato un mese o come ora ho fatturato solo gennaio,
all'apertura il report non trova i nome dei controlli dei mesi che non
ho fatturato e mi appare il messaggio "il modulo di gestione di MS
Access non riconosce "[febbraio 10]" come nome di campo o espressione
valida. Quindi il report si apre regolarmente solo se ho fatturato
tutti i 12 mesi dell'anno 2010.
Che origine posso dare alle 12 colonne, in modo che mi mostri solo le
colonne dei mesi che ho fatturato senza darmi quel messaggio?
Grazie anticipate e buon weekend.
Giuseppe.
---------  RISPOSTA  -----------
Cos� su due piedi, io fare in modo che tutte e 12 colonne dei mesi esistano, 
magari valorizzate a zero. Entrando meglio nell'argomento, credo che ti 
converebbe far s� che vengano visualizzati gli ultimi 12 mesi. Cos� il mese 
corrente la query lo chiamer� sempre MeseMeno0, il mese precedente MeseMeno1 
e cos� via ed il report non avr� buchi.
Ciao
Antonio

 Antonio
Ciao Antonio.
Per far si che esistano le 12 colonne con valore 0, dovrei inserire
delle fatture con l'articolo venduto a 0 e fattura a 0.
Quindi improponibile.
Per la seconda ipotesi, non l'ho capita molta, la query a campi
incrociati spara tante colonne in base a tutte le fatture emesse
tenendo conto del mese e anno di emissione. Attualmente mi spara da
gennaio 09 tutti i mesi fino a gennaio 2010. Solo quando emetterò
fatture con data febbraio 2010, mi esploderà la colonna chiamata
febbraio 2010. Quindi, siccome io voglio report per anno, metto
nell'origine colonna il nome del campo che mi crea la query.
Spero di essere stato chiaro su ciò che intendo ottenere.
Grazie.
Giuseppe.

 Antonio
Ciao Antonio.
Per far si che esistano le 12 colonne con valore 0, dovrei inserire
delle fatture con l'articolo venduto a 0 e fattura a 0.
Quindi improponibile.
Per la seconda ipotesi, non l'ho capita molta, la query a campi
incrociati spara tante colonne in base a tutte le fatture emesse
tenendo conto del mese e anno di emissione. Attualmente mi spara da
gennaio 09 tutti i mesi fino a gennaio 2010. Solo quando emetter�
fatture con data febbraio 2010, mi esploder� la colonna chiamata
febbraio 2010. Quindi, siccome io voglio report per anno, metto
nell'origine colonna il nome del campo che mi crea la query.
Spero di essere stato chiaro su ci� che intendo ottenere.
Grazie.
Giuseppe.
---------  RISPOSTA  -----------
E' tutto vero, ma per entrambe le ipotesi potresti fare qualcosa.
1) Fai una query di unione che unisce le fatture a campi contenenti zero. 
Alla fine avrai un recordset con un primo record con zero ed i successivi 
con le fatture del mese: se nel mese non ci sono fatture resta comunque il 
solo record con zero.
2) La query a campi incrociati ti propone il nome dei campi, ma tu puoi 
anche scegliere un altro nome. Per le fatture del mese corrente potresti 
scegliere il nome "MeseMeno0". Cos� facendo avrai un report generalizzato 
che mostrer� sempre gli ultimi 12 mesi fatturati. Eventualmente potresti 
anche aggiungere una colonna per il confronto con lo stesso mese dell'anno 
prima, un'altra col totale degli ultimi 12 mesi ed una col totale dei 12 
mesi precedenti. Con questo sistema darai al tuo cliente un prospetto di 
tutto riguardo.
Ciao
Antonio

 Antonio
Ciao Antonio.
Sinceramente credo che le soluzioni da te proposte non mi
permetterebbero di avere il report annuale con i 12 mesi anche se
alcuni mesi non presentano fatture.
Se non è così allora non ho capito, nel punto 1 del tuo post, come
unire fatture a campi contententi zero se fatture a zero non ne ho
emesse, nè è consigliabile e opportuno emetterle.
Se ho capito male io, ti prego di spiegarmelo meglio.
Grazie Antonio.
Ciao.

 Antonio
Ciao Antonio.
Sinceramente credo che le soluzioni da te proposte non mi
permetterebbero di avere il report annuale con i 12 mesi anche se
alcuni mesi non presentano fatture.
Se non � cos� allora non ho capito, nel punto 1 del tuo post, come
unire fatture a campi contententi zero se fatture a zero non ne ho
emesse, n� � consigliabile e opportuno emetterle.
Se ho capito male io, ti prego di spiegarmelo meglio.
Grazie Antonio.
Ciao.
-----------  RISPOSTA  -----------
Innazi tutto ti consiglio di esaminare maggiormente l'altra soluzione perch� 
ti dar� sicuramente risultati migliori. Per la prima idea, prova cos�:
1) Crea una tabella temporanea che chiami "Fatture a zero" costituita dagli 
stessi campi che costituiscono le fatture.
2) Genera un solo record per mese in modo da avere un record per ogni mese 
che ti interessa.
3) Fai una query di unione di questa tabella con le fatture vere e proprie.
4) Fai una query che totalizza le fatture emesse in un mese partendo dalla 
query del punto sub 3): adesso dovresi avere tutti i mesi, quelli in cui non 
ci sono fatture contengono zero.
5) Fai la query a campi incrociati.
6) Riporta nel report anche i mesi futuri, perch� adesso avranno una colonna 
a zero nella query del punto sub 5).
... e cos� risolvi col primo metodo. Per usare l'altro metodo, quello pi� 
performante, quando sei al punto 5), fai click col tasto destro su una 
colonna della griglia QbE (quella che ti aiuta a realizzare le query) e 
assegna un altro nome ai 12 mesi interessati, facendo in modo che il nome 
sia legato alla data in cui fai questo lavoro. Utilizzando opportunamente la 
funzione dateadd potrai assegnare il nome MeseMeno0 al totale delle fatture 
di febbraio 2010, MeseMeno1 al totale di gennaio, e cos� via. Quando poi 
diventer� marzo, MeseMeno0 saranno le fatture di marzo, MeseMeno1 quelle di 
febbraio...
Ciao
Antonio

 Antonio
Ecco Antonio ora mi è molto più chiaro.
Domani proverà entrambe le tue soluzioni.
Ti faccio sapere.
Grazie.
Giuseppe.


Dopo tanti tentativi torno a riproporre il mio problema che ovviamente
non ho risolto.
Delle due soluzioni prospettatemi, preferisco avere il report
suddiviso per i 12 mesi di ogni singolo anno.
Quindi ho percorso la prima.
Ho creato le tabelle tblfatturetemp e tblrighefatturetemp e in
entrambe (collegate dal campo ID) ho inserito 12 fatture con data una
per ogni mese.
Poi ho fatto due query unione tblfatture con tblfatturetemp e
tblrighefatture con tblrighefatturetemp. In entrambi i numeri di
record sono maggiori di 12 rispetto alle tabelle originali.
Poi duplicando la query a campo incrociati che per il 2009 va
benissimo in quanto ho fatturato tutti e 12 i mesi, ho sostituito le
tabelle originali con le query unione.
Il risultato è che nei mesi da marzo a dicembre 2010 dove non ci sono
fatture per molti articoli mi dà dei valori anzichè essere 0 e in più
non mi crea la colonna solo relativa al mese di luglio 2010 che (ho
controllato 100 volte) tra i record nelle tabelle temporanee c'è.
In cosa sbaglio? Cosa dovrei cambiare?
Ringrazio anticipatamente.
Ciao.
Giuseppe.