Modules |
5.61 Funzione parametrica per sommare n campi consecutivi di una tabella |
Roberto |
Quello che segue è il codice VBA di una funzione che serve a sommare i valori di un numero indeterminato di campi consecuitivi di una tabella. Public Function SommaCampi(NomeTabella As String, _ Chiave As Long, Da As Integer, A As Integer) As Long Dim rst As DAO.Recordset Dim Numero As Integer Set rst = CurrentDb().OpenRecordset(NomeTabella, _ dbOpenDynaset) rst.FindFirst "ID =" & Chiave For Numero = Da - 1 To A - 1 SommaCampi = SommaCampi + _ rst(rst.Fields(Numero).Name) Next Numero Set rst = Nothing End FunctioSe la tabella che contiene i dati si chiama Tabella1 e si vuole ottenere per ogni record la somma dei valori contenuti nel terzo, quarto e quinto campo, si può ottenere ciò con una query che abbia il seguente codice SQL: SELECT Tabella1.*, SommaCampi("Tabella1",[ID],3,5) AS Totale FROM Tabella1;La funzione di cui sopra fa riferimento alla libreria Microoft DAO quindi, se si usa una versione di Access successiva ad Access 97, occorre aggiunfere tale libreria ai riferimenti del database. |