Is there any important difference between set dbs=currentdb() and using currentDB() directly?
ms-access
Solution
Simply using `CurrentDb.Whatever` is a tempting shortcut, but there are quite a few circumstances where it causes strange behaviour. That's because `CurrentDb` is not an Object itself, it is a Function that returns a copy of the current Database object.
Years ago I swore off trying to use `CurrentDb` like it was an Object after the umpteenth time I was debugging code that I knew was "right", and it was... once I created a proper `DAO.Database` object (`Set cdb = CurrentDb`) and used `cdb.Whatever` instead of `CurrentDb.Whatever`.
Problem
I have inherited a lot of code that is essentially like this: ``` dim dbs as dao.database set dbs = currentdb() dbs.execute "Some SQL string" set dbs = nothing ``` Is there any reason not to recode it as: ``` currentdb().execute "some SQL string" ``` (I know that if I want to use .recordsaffected, currentdb().recordsaffected won't yield usable results). Are there any benefits from recoding it, other than simplifying the code?