Newsgroup: it.comp.appl.access
Titolo: Somma valori rst ad intervalli regolari

Salve a tutti,
ho un'appplicazione che non amo particolarmente e mi da grattacapi(pelati).
In una tabella ho un progressivo che si resetta al variare di un campo.
Esempio, perchč non mi sono capito neanche io.
Pippo, 00001; 36,15
Pippo, 00002; 25,12
Pluto; 00001; 1,50
etc.
Ora avrei bisogno di avere i totali dei valori nella terza colonna
raggruppati di 50 in 50: nel mio caso dovrei avere la somma dei due pippo e
tutti i Pluto che vanno da 0001 a 00050, poi riparte da 00051 a 00100 etc.
Ovvio che se cambia ancora paperino dovrei far cambiare anche quello.
Come risolvo?
Tks in advance
MAssimiliano


Ecco la mia:
'--------
Dim rstTesto As Recordset, rstDati As Recordset, risultato As String
Set rstTesto = CurrentDb.OpenRecordset("SELECT testo FROM Tabella7 GROUP BY
testo;")
Do While Not rstTesto.EOF
    risultato = risultato & ";" & rstTesto("testo") & " 1 to 50: " &
Nz(DSum("numero", "q_tabella7", "[testo]='" & rstTesto("testo") & "' AND
[xcodice] Between 1 And 50"), 0)
    risultato = risultato & ";" & rstTesto("testo") & " 51 to 100: " &
Nz(DSum("numero", "q_tabella7", "[testo]='" & rstTesto("testo") & "' AND
[xcodice] Between 51 And 100"), 0)
    rstTesto.MoveNext
Loop
Debug.Print Mid(risultato, 2)
Set rstTesto = Nothing
'---------
il codice sql di "q_tabella7" è:
SELECT Tabella7.testo, Val([codice]) AS xCodice, Tabella7.numero
FROM Tabella7
ORDER BY Tabella7.testo, Val([codice]);
- testo è "paperino", "pippo", "pluto" etc. etc.;
- codice è "0001", "0002" etc. etc.;
- numero è il valore da sommare;
Ciao.
--
Sergio MAZZA

 - numero č il valore da sommare;
Grazie Sergio, ovviamente cosě funzia.
Io perň non so il numero di "intervalli" per ciascun "testo", quindi dovrei
gestire la mancanza di range da - a
e poi dovrei crearmi una tabella temporanea con i risultati per ciascuna
riga
MAssimiliano

 MAssimiliano
Ciao.
--
Sergio MAZZA

 Eccheccevň?
Quest'ultima notizia te l'ho data per completezza.
MAssimiliano

 Quest'ultima notizia te l'ho data per completezza.
Eh! Eh! Cazzeggiavo dai...


 Eh! Eh! Cazzeggiavo dai...
Tuo solito... dai, pensa alle cose serie.
;-P
 MAssimiliano

 ;-P


 sommati?
Allora ti spiego la questione come accade.
ho una serie di prestazioni fatte a soggetti diversi.
non so perň il numero nč totale nč parziale per ciascun sogegtto.
Ora devo raggruppare queste prestazioni con pile di ricevute da 50 e saperne
il totale per ciascuna pila.
Ovvio che cosě posso sapere quante ne sono: quindi se ho 3 mazzette di pippo
significa che ne avrň due da 50 ricevute e una di <=50.
Spero di essere riuscito a spiegarmi, ci conto poco visto come sono rinco in
questo periodo (e non solo)
MAssimiliano

 questo periodo (e non solo)
Se anche stavolta non ho capito vuol dire che sei in buona compagnia...


 > questo periodo (e non solo)
Rimanendo fedele al tuo suggerimento, ho scritto
Private Sub Comando0_Click()
Dim rstTesto As DAO.Recordset
Dim rstDati As DAO.Recordset, risultato As String
Dim out As DAO.Recordset
Dim pippo As String
pippo = "SELECT Prestazione.erogatore FROM Prestazione GROUP BY
Prestazione.erogatore;"
Set out = CurrentDb.OpenRecordset("tabella1")
Set rstTesto = CurrentDb.OpenRecordset(pippo)
Do While Not rstTesto.EOF
    risultato = risultato & " " & rstTesto("erogatore") & " 1 to 50: " &
Nz(DSum("euri", "query1", "[erogatore]='" & rstTesto("erogatore") & "' AND
[xcodice] Between 1 And 50"), 0)
    out.AddNew
    out!erogatore = rstTesto!erogatore
    out!range = "1 a 50"
    out!valorer = Nz(DSum("euri", "query1", "[erogatore]='" &
rstTesto("erogatore") & "' AND [xcodice] Between 1 And 50"), 0)
MsgBox risultato
    rstTesto.MoveNext
    out.Update
 '   out.MoveNext
 Loop
Debug.Print Mid(risultato, 2)
Set rstTesto = Nothing
Set out = Nothing
End Sub
Questo va l'unica cosa che manca è far scattare quel between 1 and 50 al
prossimo step
MAssimiliano

 ha scritto nel messaggio
news:HP_zb.13000$i_5....@news.edisontel.com...

Quindi parametrizzare gli step. Un modo sarebbe di ottenere tutta la somma
del testo:
Nz(DSum("euri", "query1", "[erogatore]='" & rstTesto("erogatore")  & "'")
dividerla per 50 e vedere quanti clicli da 50 devi fare...
Ciao.
--
Sergio MAZZA