Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Trasformare una tabella verticale in orizzontale

393 views
Skip to first unread message

ziob...@gmail.com

unread,
Nov 13, 2012, 1:47:30 PM11/13/12
to
Ciao a tutti, innanzitutto!

avrei bisogno di trasformare una tabella "righe documenti" il cui record é: imponibile imposta iva e può essere su più righe/record, se presenti più aliquote (max fino ad 8 aliq),

in una tabella in cui siano rappresentate in orizzontale tale per cui si abbia:
imponibile1, imposta1, iva1, imponibile2, imposta2, iva2 etc etc.

spero di essermi espresso in maniera sufficientemente chiara.

Piccola complicazione: nella prima tabella posssono esseerci 1 o 2 o 3 fino ad 8 record per ogni fattura, dipende da quante aliquote ha, ma nella seconda tabella devono essere forzatamente otto (in orizzontale le possibilità).
Se una fattura nella prima tabella ha solo due aliquote, nella seconda, in orizzontale, devono essere valorizzate due serie di variabili, le altre 6, obbligatoriamente presenti devono essere valorizzate a 0 oppure a spazio.

Uff...

mi sembra difficile da spiegare ma magari qualcuno ha già dovuto affrontare un problema di questo tipo.

Grazie mille a tutti coloro che vogliono solo provare a capire quello che cerco di spiegare malamente.

Pablitomf

unread,
Nov 13, 2012, 4:40:43 PM11/13/12
to
> Grazie mille a tutti coloro che vogliono solo provare a capire quello
che cerco di spiegare malamente.

query a campi incrociati.


--
------------
Pablitomf
Napoli sempre nel "Q"uore!
"mammasantissima" si nasce, non si diventa.

TheSpaceCowboy :
Britos deve recuperare per arrivare in forma al prossimo
infortunio - 24/10/12

ziob...@gmail.com

unread,
Nov 13, 2012, 5:49:32 PM11/13/12
to
>
>
> query a campi incrociati.
>
>
grazie per la risposta.

mmmm.... mi sto ingarbugliando mica da ridere nel tentativo.

non capisco bene che devo mettere nelle righe o nelle colonne.
Ogni volta che provo mi pare venga una schifezza.

un suggerimento?

Pablitomf

unread,
Nov 13, 2012, 6:26:46 PM11/13/12
to
ziob...@gmail.com <ziob...@gmail.com> ha scritto:
spe spe ho risposto troppo frettolosamente e senza leggere bene il risultato
che ti aspetti...

imponibile1, imposta1, iva1, imponibile2, imposta2, iva2

questo non puoi averlo con una query a campi incrociati...

al massimo puoi avere uno solo di questi campi come intestazione colonna
(es. Iva) e mettere l'imposta come valore di colonna... mentre l'imponibile
lo metti sulla riga.

ziob...@gmail.com

unread,
Nov 14, 2012, 6:19:03 AM11/14/12
to
Grazie Pablitomf,

ancora non sono riuscito a trovare una strada percorribile.

Nessuno ha altre idee, esperienze?

Vladimiro Leone

unread,
Nov 14, 2012, 2:03:24 PM11/14/12
to
Ciao,
sempre se ho capito bene, puoi fare così:
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim i As Integer

CurrentDb.Execute "Delete * From Tabella2"
Set rs1 = CurrentDb.OpenRecordset("righe documenti")
Set rs2 = CurrentDb.OpenRecordset("Tabella2")

Do Until rs1.EOF
rs2.AddNew
For i = 1 To 8
rs2.Fields("A" & i) = rs1!Campo1
rs1.MoveNext
If rs2.Fields("A" & i) = Null Then rs2.Fields("A" & i) = 0
Next i
rs2.Update
Loop

rs1.Close
rs2.Close
Set rs1 = Nothing
Set rs2 = Nothing

DoCmd.OpenTable "Tabella2"

Al posto di Campo1 metti il vero nome del campo della tabella"righe documenti", al posto di Tabella2 il vero nome della seconda tabella che vuoi implementare ed infine modifica il nome degli 8 campi della Tabella2 che io per comodità ho chiamato A1:A8; l'importante è che si chiamino con lo stesso nome e che abbiano un numero finale da 1 a 8
Ciao Vladimiro
0 new messages