Newsgroup: it.comp.appl.access
Titolo: Difficoltà creazione istogramma access / excel

Buongiorno a tutti,
 
vista la mia incapacità di creare istagrammi su access, ho pensato di migrare in excel.
Ho comunque un problema.
La procedura che pensavo di usare è quella di collegare la query su excel e da lì creare il grafico.
L'unica mia difficoltà deriva dal fatto che la query è molto complessa (per le mie capacità ovviamente).
Su access (per visualizzare i dati che mi servono) ho risolto creando una maschera continua con origine dati una query QComm e aggiunto a livello di maschera dei DLookUp.
 
Ora, per poter fare il grafico in excel avrei bisogno di vedere i DLookUp direttamente nella query, ma tutto va in tilt e non funziona...
 
Semplificando ho creato la query origine dati della maschera in questo modo:
 
SELECT QComm.IdCommessa, QComm.Identificativo
FROM QComm;
 
Dentro la maschera continua ho inserito dei campi con questa origine dati:
=IIf(IsNull(DLookUp("[SommaDiImponibile]";"[QEstrFattAnaSelData]";"[IdCommessa]=" & [IdCommessa]));0;(DLookUp("[SommaDiImponibile]";"[QEstrFattAnaSelData]";"[IdCommessa]=" & [IdCommessa])))
 
e la maschera, nonostante si carichi lentamente, funziona.
 
Sperando di risolvere ho provato a inserire direttamente nella query i DLookUp, ma, così facendo, access smette di funzionare...
 
SELECT QComm.IdCommessa, QComm.Identificativo, IIf(IsNull(DLookUp("[SommaDiImponibile]","[QEstrFattAnaSelData]","[IdCommessa]=" & [IdCommessa])),0,(DLookUp("[SommaDiImponibile]","[QEstrFattAnaSelData]","[IdCommessa]=" & [IdCommessa]))) AS FatturatoA
FROM QComm;
 
va da sè che anche il collegamento con excel non funzioni.
 
Qualcuno saprebbe indicarmi la procedura da fare e farmi capire eventualmente dove sbaglio se non è di troppo disturbo...?
La cosa più bella in assoluto sarebbe quella di avere il grafico direttamente estrapolando i dati della maschera ma, da quanto ho capito, è un'utopia...
 
Grazie mille per chiunque voglia aiutarmi a risolvere questo mio grattacapo... e chiedo venia in anticipo per le mie scarse competenze in materia...
 
 
 

se si tratta di semplici istogrammi di fatturato da quel che mi pare di 
capire dalla query perchè non li disegni direttamente su una maschera?
 
ti incollo qui un esempio dove li ho realizzati solamente usanto dei 
controlli box colorati e linee
 
https://ibb.co/zJ0HMD2
 
 
ovviamente è una soluzione per chi ha poche pretese, nel caso del 
cliente a cui si riferisce l'immagine gli bastava avere un colpo 
d'occhio su fatturato mensile, per tipologia, negli ultimi 10 anno e i 
top clienti
 
ciao
BFS


Sarebbe una bella idea,il grafico però dovrebbe farmi vedere i dati non solo del fatturato ma anche quello dei costi (in realtà vari tipi di costo che derivano da tabelle diverse) per ogni singola commessa e per periodo, non so come fare a metterli insieme dato che derivano da query o tabelle diverse...
Sto provando vari metodi ma senza risultato.
Ora sto provando una nuova strada. Ho creato due query che mi divide i fatturati e i costi per anno, ma poi comunque sono a un punto fermo perchè non riesco a incrociare i dati, magari per voi è facilissimo...
Mettere insieme queste due query:
 
SELECT Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, Format([DataFattura],"yyyy") AS Anno, Sum(Fattura.Imponibile) AS SommaDiImponibile
FROM Commessa LEFT JOIN Fattura ON Commessa.IdCommessa = Fattura.IdCommessa
GROUP BY Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, Format([DataFattura],"yyyy");
 
IdCommessa Commessa	IdCliente Anno	SommaDiImponibile(fattura)
1	    36.14	ALFA      2015	246.943,13 €
1	    36.14	ALFA      2017	100.000,00 €
1	    36.14	ALFA      2018	63.344,94 €
1	    36.14	ALFA      2019	8.191,25 €
2	    04.11	FIL	  2015	255.925,00 €
2	    04.11	FIL	  2017	27.208,40 €
2	    04.11	FIL	  2018	1.490,00 €
3	    06.12	MUS	  2015	848.942,53 €
3	    06.12	MUS	  2017	23.168,70 €
3	    06.12	MUS	  2019	16.477,50 €
5	    18.12	LOLLO	  2015	52.058,40 €
5	    18.12	LOLLO	  2017	8.000,00 €
5	    18.12	LOLLO	  2018	14.985,00 €
6	    01.13	EDO       2015	212.403,69 €
6	    01.13	EDO       2017	12.125,02 €
6	    01.13	EDO       2018	12.674,33 €
 
SELECT Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, Format([Data],"yyyy") AS Anno, Sum(Costi.Imponibile) AS SommaDiImponibile
FROM Commessa LEFT JOIN Costi ON Commessa.IdCommessa = Costi.IdCommessa
GROUP BY Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, Format([Data],"yyyy");
 
IdCommessa    Commessa	IdCliente  Anno	SommaDiImponibile(costo)
1	        36.14	ALFA	   2017	2.675,00 €
1	        36.14	ALFA	   2018	129,20 €
1	        36.14	ALFA	   2019	349,70 €
2	        04.11	FIL		
3	        06.12	MUS	   2018	8.892,00 €
3	        06.12	MUS	   2019	1.980,00 €
5	        18.12	LOLLO		
6	        01.13	EDO		
 
Nella prima sono rappresentati i fatturati per anno e per commessa, nella seconda query i costi per anno e per commessa.
Non è detto che ci siano costi o fatturati per gli stessi periodi, nel senso che per esempio per la ditta ALFA commessa 36.14 non ci sono stati costi per il 2015.
 
Sarebbe grandioso avere una vostra idea... magari sto sbagliando approccio..
Grazie mille per la pazienza...
 

 vista la mia incapacità di creare istagrammi su access, ho pensato di migrare in excel.
 
 
Non vedo il vantaggio: che difficoltà hai nel generare un Grafico da Access?
Ti basta sfruttare google per trovare una montagna di esempi, con o senza codice, per sbrogliare la matassa.
 
Saluti


puoi unire le due query tramite la UNION
 
https://support.office.com/it-it/article/usare-una-query-di-unione-per-combinare-pi%C3%B9-query-in-un-singolo-risultato-1f772ec0-cc73-474d-ab10-ad0a75541c6e
 
 
 
ciao
BFS
 
 


l'idea di fare una union potrebbe andare bene per unire tutte le query che contengono tipi di costo diversi.
Ma se faccio una query di unione con la tabella o la query di Fatture(ricavi) e la query costi, mi verrebbe fuori un elenco unico, e non distinguo se sono costi o ricavi, quindi non vedo neppure l'utile...
Oppure ho inteso male io?
 
L'ideale sarebbe avere il risultato di una query così:
 
anno  commessa ricavi costi utile
2018   36.14    1000    800  200
2019   36.14    1100    750  350
2019   04.11     500    400  100 ecc
 
in questo modo riuscirei a creare un grafico ma non riesco ad ottenere una query con i dati così... Mannaggia
 
Grazie infinite per l'aiuto che state cercando di darmi...
Qualcuno riesce a illuminarmi?
 
 
 


puoi fare la query di unione cosi
 
 
select anno, commessa, ricavi, 0 as costi from tabellaricavi
union
select anno, commessa, 0 as ricavi, costi from tabellacosti
 
importante avere lo stesso numero di colonne.
nella prima dei ricavi ho aggiunto una colonna costi che vale zero nella 
seconda dei costi il contrario
 
nel tuo caso qualcosa del genere
 
 
SELECT Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, 
Format([DataFattura],"yyyy") AS Anno, Sum(Fattura.Imponibile) AS RICAVI, 
0 as COSTO
FROM Commessa LEFT JOIN Fattura ON Commessa.IdCommessa = Fattura.IdCommessa
GROUP BY Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, 
Format([DataFattura],"yyyy")
 
 
union
 
SELECT Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, 
Format([Data],"yyyy") AS Anno, 0 As RICAVI, Sum(Costi.Imponibile) AS COSTO
FROM Commessa LEFT JOIN Costi ON Commessa.IdCommessa = Costi.IdCommessa
GROUP BY Commessa.IdCommessa, Commessa.Commessa, Commessa.IdCliente, 
Format([Data],"yyyy");
 
 
 
BFS
 
 
 
 
 
 
 
 

 >>>>
 
Fantastico! Non ci avevo pensato. Grazie al vostro aiuto credo di riuscire sia con la query di unione sia con il grafico in access direttamente... Ora mi metto alla prova...
Siete stati meravigliosi! Grazie davvero tantissimo.
Buona giornata a tutti



Ok! ce l'ho fatta.
L'unica cosa che magari serve a chi legge, devo dire che i grafici in access sono una desolazione (a meno che ci siano trucchi che io non conosco), la cosa un pochino più macchinosa ma con effetti decisamente migliori è quella di esportare in excel la query con i dati necessari al grafico e filtrare e creare il grafico sempre in excel.
Da quanto ho capito occorre esportare la query e non collegarla perchè excel non legge query parametriche (come nel mio caso).
Grazie veramente a tutti quelli che mi hanno aiutato.
Buona giornata

 L'unica cosa che magari serve a chi legge, devo dire che i grafici in access sono una desolazione (a meno che ci siano trucchi che io non conosco)
 
 
Ti sbagli: Access utilizza Graph esattamente come Excel per produrre Grafici, quindi puoi ottenere le stesse cose.
Se hai difficoltà con gli strumenti visuali, puoi ricorrere a Codice VBA per manipolare il Grafico come ti pare. Googlando trovi moltissimi esempi, dai più semplici ai più complessi.
 
Saluti


come desolazione?
puoi decidere cosa mettere nelle x nelle y, le serie, i filtri, il tipo 
di grafico (isto, torte, dispersione) e tutto personalizzandolo a 
livello visivo
 
prova a spiegare magari il tipo di grafico che vuoi ottenere
 
ciao
 
BFS
 
 
 

 
prova ad usare questo ocx/dll per fare i grafici, 
 
anche se non e' piu' supportato , da ottimi risultati.
 
 
http://www.blecktech.com/PowerBASIC/rmChart(v4.12).zip
 


Può darsi che abbiate ragione tutti, ma trovo che excel nei grafici sia molto più intuitivo e facile da usare. Io uso Office Pro 2016... 
Quando avrò più tempo mi riprometto di controllare bene cosa si può fare con access, in ogni caso sono già molto soddisfatta dei risultati ottenuti.
Grazie mille a tutti per la vostra collaborazione.
Buona giornata


 
 
Può essere, ma se l'affermazione è:
 
"devo dire che i grafici in Access sono una desolazione, preferisco usare Excel con effetti decisamente migliori, etc. etc."
 
In tal caso, la risposta sarà: NEIN ! 
Ottieni le stesse cose.
 
Saluti
 
 

I nuovi grafici 365 poi sono abbastanza belli e funzionali... spero abbiano corretto i bugs che erano abbastanza imbarazzanti sui campi %... ma sicuramente funzionano.
 
@Alex