Below is an exact mapping of my table and field names into your example. You are right in that sorting on the date is key in that auto-numbers only reflect record addition chronology. E.g., someone enters a record for July 1st when the table is already reflecting activity for clear up to December 16th.
Balance field is empty when the query below is run. Not sure what's going on here.
Code:
SELECT tblChkReg.Debit, tblChkReg.Credit, (SELECT sum(Credit-Debit) FROM tblChkReg AS T WHERE TranID<=tblChkReg.TranID AND TDate<=tblChkReg.TDate) AS Balance
FROM tblChkReg
ORDER BY tblChkReg.TDate, tblChkReg.TranID;