Newsgroup: it.comp.appl.access
Titolo: Trasformare una tabella verticale in orizzontale

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.

> 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
 

 
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?

 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.


Grazie Pablitomf,
 
ancora non sono riuscito a trovare una strada percorribile.
 
Nessuno ha altre idee, esperienze?
 


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