In Access, what is the difference between these two statements?
DBEngine.BeginTrans
and
DBEngine.Workspaces(0).BeginTrans
The documentation for both leads to the same place.
Have a look here: DAO Workspace
And then here: DAO Workspace: Opening a Separate Transaction Space
(The links are for MFC, but they're applicable to whatever you're coding in.)
DBEngine.Workspaces(0)
is the default workspace. Other workspaces can be created, which let you work with separate sessions; the idea is that BeginTrans
and EndTrans
apply to the whole workspace, but if you need to do stuff outside that transaction, you can create another workspace and use it independently of your transactions in the first workspace.
Personally, I never had occasion to use more than one workspace when doing DAO in VBA. * shrug *
My own answer:
It appears that DBEngine.BeginTrans and DBEngine.Workspaces(0).BeginTrans do the same thing because this code works (see below). "Workspaces" is the default member of DBEngine.
Dim db As Database
Set db = CurrentDb
DBEngine.BeginTrans
db.Execute "Update Table1 SET CITY='Newark'"
DBEngine.Workspaces(0).Rollback
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With