Non ho postato la query perche quello che voglio realizzare è prendere i valori per le colonne direttamente da una function che a sua volta li riceve da una form senza passare alcuna variabile dalla query:
TRANSFORM ore_da_fare((Nz([Settimana])),(Nz([Data Fine prevista])),(Nz([% Comp Reale])),(Nz([Data Inzio])),(Nz([Sett_inizio_att])),(Nz([Sett_fine_att])),Nz([Ore_settimana])) AS Calcolo_ore
SELECT [10 Commesse].[Nome progetto], [20 Macchine].[Macchina in Fornitura], [30 Attivita macchine].Attività, [30 Attivita macchine].Codice_Somma, [30 Attivita macchine].[Data Inzio], [30 Attivita macchine].[Data Fine prevista], [30 Attivita macchine].Sett_inizio_att, [30 Attivita macchine].Sett_fine_att, Format((Ore_settimanali((Nz([ore previste])),(Nz([ore extra])),(Nz([Ore interni])),(Nz([Ore Esterni])),(Nz([Sett_fine_att])),(Nz([Sett_inizio_att])))),0) AS Ore_settimana, [30 Attivita macchine].Ordine_operazione, [30 Attivita macchine]![ID_attivita_comune] Mod 2 AS PD
FROM [10 Commesse] LEFT JOIN (([20 Macchine] LEFT JOIN [150 Settimane] ON [20 Macchine].Id_attivita_comune = [150 Settimane].Riferimenti) LEFT JOIN [30 Attivita macchine] ON [20 Macchine].ID = [30 Attivita macchine].Id_macchina_riferimento) ON [10 Commesse].ID = [20 Macchine].Progetto
WHERE ((([20 Macchine].[Macchina in Fornitura])=1) AND (([10 Commesse].Stato)="In corso") AND (([20 Macchine].Perc_comp_reale)<>1 Or ([20 Macchine].Perc_comp_reale) Is Null))
GROUP BY [10 Commesse].[Nome progetto], [20 Macchine].[Macchina in Fornitura], [30 Attivita macchine].Attività, [30 Attivita macchine].Codice_Somma, [30 Attivita macchine].[Data Inzio], [30 Attivita macchine].[Data Fine prevista], [30 Attivita macchine].Sett_inizio_att, [30 Attivita macchine].Sett_fine_att, Format((Ore_settimanali((Nz([ore previste])),(Nz([ore extra])),(Nz([Ore interni])),(Nz([Ore Esterni])),(Nz([Sett_fine_att])),(Nz([Sett_inizio_att])))),0), [30 Attivita macchine].Ordine_operazione, [30 Attivita macchine]![ID_attivita_comune] Mod 2, [30 Attivita macchine].[% Comp Reale], [20 Macchine].Perc_comp_reale
ORDER BY [10 Commesse].[Nome progetto], [20 Macchine].[Macchina in Fornitura], [30 Attivita macchine].Ordine_operazione
PIVOT Calc_set();
In questo specifico caso si, il tutto è finalizzato alla costruzione di un report ma vorrei poi applicare questo metodo anche ad altre query che non prevedono report ma che vengono usate come "fogli di calcolo" per copiare ed incollare alcune righe del risultato su excel (lo so che non ha senso ma in questo caso devo piegarmi alla volonta degli utilizzatori)