You could try several troubleshooting steps. I would first open the immediate window (press Ctrl+G) and enter the following with a good account and valid ID.
?Val(DSum("Nz(Debit,0)-Nz(Credit,0)","qryCheckRegister","[Account] = '[known legitimate Acct]' And ID <= 1000')
If it works, try the query with above expression.
If it works, add a new column to the query
test: [Forms]![frmBankAccounts]![Account]
If you see correct value from the form, consider providing a sample database with just the required objects.
Here's the DB. I converted text Account to AccountID. Thanks. I have two forms to select the checking account. frmBankAccounts is a bound main form with subfrmCheckRegister. frmSelectRegister has a combobox to select checking account and then opens form frmCheckRegister.
If you balance is for a specific Account then the query and DSum() must be filtered for the specific Account. I don't believe you mentioned or were clear the balance was for a specific account. Try an expression like:
If you balance is for a specific Account then the query and DSum() must be filtered for the specific Account. I don't believe you mentioned or were clear the balance was for a specific account. Try an expression like: