Forse ho trovato la soluzione:
1. Dalla tabella tblXtabColumns ho eliminato il record Cod
2. Ho creato una query a campi incrociati per ottenere 1 record (per ciascuna Intestazione fattura) con "eventuali diverse aliquote presenti in voci fattura (chiamata CodiciIva)
codice:
TRANSFORM Tbl_Aliq.Cod AS IVA
SELECT Tbl_VocFatt.ID_IntFatt AS IntFatt
FROM Tbl_VocFatt INNER JOIN Tbl_Aliq ON Tbl_VocFatt.Iva=Tbl_Aliq.ID
GROUP BY Tbl_VocFatt.ID_IntFatt
PIVOT Tbl_Aliq.Cod;
3. Ho creto una query a campi incrociati per ottenere 1 record (per ciascuna Intestazione fattura) con la somma degli imponibili "collegati" alla stessa aliquota IVA (chiamata Imponibili)
codice:
TRANSFORM Sum(IIf([FieldName]="Imponibile",[ImpVocParzTot])) AS TotImpon
SELECT Tbl_VocFatt.ID_IntFatt AS IDFatt
FROM tblXtabColumns, Tbl_Aliq INNER JOIN Tbl_VocFatt ON Tbl_Aliq.ID=Tbl_VocFatt.Iva
GROUP BY Tbl_VocFatt.ID_IntFatt
PIVOT [FieldName] & Tbl_Aliq.Cod;
4. Ho creato una query di selezione tra la query CodiciIva e la query Imponibili con JOIN basato sull'ID dell'intestazione fattura (chiamata ImponibiliConIVA)
codice:
SELECT Imponibili.* AS Imponibile, CodiciIva.* AS IVA
FROM Imponibili INNER JOIN CodiciIva ON Imponibili.IDFatt = CodiciIva.IntFatt;
Ho utilizzato l'asterisco per comprendere tutti i campi essendo questi un solo campo ripetuto tante volte quante sono le aliquote e quindi potendo applicare questa selezione a prescindere dal fatto che le voci che compongono una fattura possano essere tutte con stessa aliquota oppure tutte con aliquota diversa
Allego il database Access 2007