Newsgroup: it.comp.appl.access
Titolo: maschera continue totali somme

ciao a tutti, girellando ho trovato questo codice che mi permette di
eseguire i totali dlle colonne di una maschera continua, ma avrei la
necessità di applicarla a più colonne ed esattamente a 18 colenne
distinte. qualcuno può aiutarmi a modificare il presente codice
affinche possa far eseguire i totali distinti per ciascuna colonna
(entra - uscita - entrata1 -uscita1 .........entrata9 - uscita9)
Grazie
posto codice:
Private Sub PièDiPaginaMaschera_Click()
Dim OBJ As DAO.Database
Set OBJ = Application.CurrentDb
Dim rs As DAO.Recordset
Me.txt_uscita.SetFocus
Set rs = OBJ.OpenRecordset("risultato_somma")
Me.txt_uscita.Text = rs(0).Value
End Sub
Private Sub Form_Load()
Dim OBJ As DAO.Database
Set OBJ = Application.CurrentDb
Dim rs As DAO.Recordset
Me.txt_uscita.SetFocus
Set rs = OBJ.OpenRecordset("risultato_somma")
Me.txt_uscita.Text = rs(0).Value
End Sub

 End Sub
Perché lo fai due volte? Per aggiornarlo al click sul piè di pagina?
Faccio 2 esempi:
Se hai 9 colonne con i risultati e 9 caselle di testo nella maschera
che si chiamino txt_Somma0, txt_Somma1, txt_Somma2 ecc.
puoi provare questo codice:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim i As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("risultato_somma", dbopendynaset)
For i = 0 to 8
    Me("txt_Somma" & i).Value = rs(i).Value
Next i
Di solito è più stabile di non lavorare con la posizione delle colonne
nel recordset (cioè query?) ma con i nomi delle colonne. Se chiami
le colonne nella query Somma1, Somma2" ecc. e le caselle nella
maschera txt_Somma1, txtSomma2 ecc. il ciclo sarebbe:
For i = 1 to 9
    Me("txt_Somma" & i).Value = rs("Somma" & i).Value
Next i
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 - Mostra testo citato -
ciao karl nonho ben capito cosa intendi in questa parte "Se hai 9
colonne con i risultati " io ho una maschera continua e a piè di
pagina ho messo tante caselle non associate quante sono le colonne che
vorrei sommare ovvero si tratta di 9  casse coposte da 9 colonne  (da
entrate a entrata9) e 9 colonne uscite (da uscita a uscita9) e vorrei
che in ciascuna di queste caselle poste a piè di pagina mi eseguisse
la somma di tutti i dati contenuti in ciascuna colonna. Preciso che la
query a cui è collegata la maschera non esegue alcun calcolo.

 query a cui è collegata la maschera non esegue alcun calcolo.
Allora per me non è chiaro perché hai postato il codice, cosa fa
e cos'è "risultato_somma".
In genere per sommare campi che sono tutti nell'origine record
della maschera non c'è bisogno di codice. Bastano espressioni
come origine controllo di caselle di testo di questo tipo:
=Sum(entrata1 - uscita1)
=Sum(entrata2 - uscita2)
ecc.


 - Mostra testo citato -
ciao karl, hai ragione ho fatto un bel po di confusione. Ora ho
chiamato le caselle di testo non associate poste a piè di pagina
(txt_Somma1, txt_Somma2, txt_Somma3 .......txt_Somma20) e creato la
seguente query "risultato_somma"
SELECT Sum([entrata]) AS somma1, Sum([uscita]) AS somma2,
Sum([entrata1]) AS somma3, Sum([entrata2]) AS somma4, Sum([entrata3])
AS somma5, Sum([uscita3]) AS somma6, Sum([entrata4]) AS somma7,
Sum([uscita4]) AS somma8, Sum([entrata5]) AS somma9, Sum([uscita5]) AS
somma10, Sum([entrata6]) AS somma11, Sum([uscita6]) AS somma12,
Sum([entrata7]) AS somma13, Sum([uscita7]) AS somma14, Sum([entrata8])
AS somma15, Sum([uscita8]) AS somma16, Sum([entrata9]) AS somma17,
Sum([uscita9]) AS somma18
FROM Tabella1;
ed per finire questo evento
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim i As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("risultato_somma", dbOpenDynaset)
For i = 1 To 20    Me("txt_Somma" & i).Value = rs("Somma" & i).Value
Next i
End Sub
Ora mi da somme soltanto fino alla casella chiamata "txt_somma16"
mentre ""txt_somma17 e txt_somma18" resto bianche. Inoltre in molte
caselle il calcolo è errato.
Puoi dirmi dove sbaglio?
Grazie

 - Mostra testo citato -
trovato gli errori, ora funziona bene grazie mille