Running total on a form
Posted by: fredometro on
Jan 25th, 2004 |
Filed under: MS-Access
It is sometimes needed to show the running total of the records. On a report, there is no problem as this feature in built-in. But on a form, a bit of coding is needed.
Here is a function that will work on any form. The most of it is that you can sort or filter the records, the running total still works because it works with the form’s recordsetclone.
Parameters of the function:
[Amountfield] is the field name we want to totalize
[Keyfield] is the field name of the primary key of your form’s table or query, or simply an unique field.
Public Function RunTotal(AmountField, KeyField)
Dim SumRs As Recordset
Dim frm As Form
Dim RunningValue As Double
Dim IsCancelled As Boolean
Set frm = Forms(AmountField.Parent.Name)
Set SumRs = frm.RecordsetClone
With SumRs
' Setting first amount
RunningValue = 0
On Error Resume Next
.FindFirst "True"
' Summing all other
While .Fields(KeyField.Name) <> frm.Controls(KeyField.Name) And Not IsCancelled
RunningValue = RunningValue + .Fields(AmountField.Name)
On Error Resume Next
.FindNext "True"
If Err <> 0 Then IsCancelled = True
On Error GoTo 0
Wend
' Do the current one
RunningValue = RunningValue + .Fields(AmountField.Name)
End With
Set SumRs = Nothing
RunTotal = RunningValue
End Function

Be the first!
Tags: