Firstly, you should not store the running balances as a column in the table
but compute them in a query when required. Storing data computed form other
data leaves the door open to update anomalies as one can be changed
independently of the other. Before you can compute the running balances,
however, you need a field in the table by which you can order the data. If
you want it sorted in the order of input the best way is to include a
DateStamp field in the table with a default value of Now(). This will
automatically enter the date/time when a new record is entered. Don't be
tempted to think you can use an autonumber field for this; an autonumber
guarantees uniqueness, not necessarily sequence.
The usual way to compute the running balance would be by a subquery which
references the outer query so that it sums all rows up to and including the
current one, e.g.
SELECT MyField,
(SELECT SUM(MyField)
FROM MyTable As T2
WHERE T2.DateStamp <= T1.DateStamp) AS RunningBalance
FROM MyTable AS T1
ORDER BY DateStamp;
Queries in Access which include SQL aggregate functions are not updatable
however, so if you need the query to be updatable you should use the VBA DSum
function rather than the SQL COUNT function:
SELECT MyField,
DSum("MyField","MyTable","DateStamp <= #" & Format([DateStamp],"mm/dd/yyyy
hh:nn:ss") & "#") AS RunningBalance
FROM MyTable
ORDER BY DateStamp;