It works.Yes, interesting as an academic exercise, since it's a problem you have no need of hitting.
I wonder whether trying the following makes a difference:
Code:' ... Dim TotalArea As Variant ' ... TotalArea = 222.22 rst!numCommonExpensePercent = rst!numArea / TotalArea ' ...
I adopted ADODB because of its ease of use, even though you cannot search for more than one items at a time, something you can do with DAOUnless you late-bind, you need to ensure a reference is set to the ADODB library.
Whilst I prefer the syntax and semantics of the ADODB model, MS failed in getting it to work better with Access than the more native DAO. DAO is built-in to Access and usually quicker in execution than ADO.
Being extra verbose for sake of clarity is fine, however this is not a truly analogous example because specifying ASC does not cause any extra operation to be performed, whereas .MoveFirst is an unnecessary waste of computer cycles (granted, negligible to human perception!)