---------------------------
RegSvr32
---------------------------
DllRegisterServer in dao350.dll failed.
Return code was: 0x80004005
---------------------------
I just went through a week of pain with this one myself and finally found the proper (?) solution to sucessfully register DAO350dll. Since I could not find any solutions on Google, I thought that this Lockergnome thread might be a good place to post my solution...
Note: I am running Windows XP Pro and was trying to use a pre-compiled VB program. The program would run fine for the network administrator on my machine, but would not run for me or the local administrator account. I would get the famous 429, "ActiveX Can't Create Object" error. This lead to the discovery of not being able to register dao350.dll.
For me, the root of the problem was in the registry. There are a group of keys that somehow I no longer had access to, even though my account is part of the administrators group. (Note: The local machine Administrator account also could not get the DAO350.DLL to register).
You will need to have access rights to the following registry keys:
HKEY_CLASSES_ROOT\DAO.DBEngine.35
HKEY_CLASSES_ROOT\DAO.Field.35
HKEY_CLASSES_ROOT\DAO.Group.35
HKEY_CLASSES_ROOT\DAO.Group.35
HKEY_CLASSES_ROOT\DAO.PrivateDBEngine.35
HKEY_CLASSES_ROOT\DAO.QueryDef.35
HKEY_CLASSES_ROOT\DAO.Relation.35
HKEY_CLASSES_ROOT\DAO.TableDef.35
HKEY_CLASSES_ROOT\DAO.User.35
If you have administrator rights on your account, you can (re)take ownership of these keys & subkeys to give yourself Full Control for each.
After changing the access rights, you should then be able to successfully register the dll.
*Disclaimer* You will be modifying the registry. Insert all standard registry modification disclaimers, warnings, etc. here!!*
To change the rights, you can use regedit. Find the keys, right click on it, select Permissions. You will need first to take ownership (Advanced button, owner tab). Once you're the owner, then add yourself as a user (if you're not in the users list), then give yourself full control. You need to do this for each of the above keys and their respective subkeys.
A couple of useful programs to make this task a little easier are Resplendence's Registrar Lite (Free). This one will show you the keys with a red icon that indicates you don't have access. You can also do the ownership/full control inside this program as well. Also, Microsoft has a powerful command line tool that will change the keys and subkeys in one command (for each key). It is freely downloadable from Microsoft and is called SUBINACL.EXE. The command line I used is as follows (repeat for each of the above).
subinacl /subkeyreg HKEY_CLASSES_ROOT\DAO.DBEngine.35 /setowner=DOMAIN\USERNAME /sgrant=DOMAIN\USERNAME=f /grant=DOMAIN\USERNAME=f
Note: I used my domain & username and it works on my account. Logging into the local admin account, that account lost access to the keys. Works for me, but there is likely a "global" user account/permission that would be better to use.
Good luck and I hope this post helps someone/anyone who runs into this little problem!!
-Sadfly