VB6 DAO - importance of registering DAO350.DLL

LeighWardle
LeighWardle used Ask the Experts™
on
Hi Experts,

I have a number of VB6 applications that use DAO 3.5.

There are 100s of users happily using the applications on Windows XP, 7 and 8.x

But I have struck a problem when I run my setup programs (created with Setup Factory) on my Windows 10 Pro system.

I'm getting this error when running the setup program:
Error      Register COM file: C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\DAO350.DLL - System Error # 0 (3)
Notice      Register COM failure reason: Error 0x8002801c: Error accessing the OLE registry.

The installed application runs fine - I don't get any errors when using database features.

What I want to know is:  

does it matter to end users if DAO350.DLL is not registered?
can I assume that DAO350.DLL only needs to be registered for developers?
Regards,
Leigh
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2012
Top Expert 2014

Commented:
I'd be curious as to exactly what reference is being used on that Win10 box. Can you add code to show the references in use by the application? I know that Access can "upgrade" references to a newer version, so I'm curious if VB6 will do the same.
Jim Dettman (EE MVE)President / Owner
Most Valuable Expert 2017
Most Valuable Expert 2012

Commented:
<<does it matter to end users if DAO350.DLL is not registered?>>

  Yes, DAO will not work.

<<can I assume that DAO350.DLL only needs to be registered for developers?>>

 No.   If VB6 makes a DAO call, it's going to fail if the DLL is not registered.

@Scott,

  No, references don't auto update.  That's an Office only thing.


Usually this error stems from 32/64 bit differences.   Make sure your using regsrv32 in c:\windows\sysWOW64 \ and registering with elevated admin priv.

Jim.
Jim Dettman (EE MVE)President / Owner
Most Valuable Expert 2017
Most Valuable Expert 2012

Commented:
BTW, you really should be using DAO 3.61 rather than 3.5, which is the last release of DAO.

Jim.
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Most Valuable Expert 2012
Top Expert 2014

Commented:
The installed application runs fine - I don't get any errors when using database features.

I was curious about the above, if the DLL reg fails. If DAO isn't registered at some level, then the app should not be able to use it. Perhaps DAO35 is already registered on the Win10 box somewhere else?
Jim Dettman (EE MVE)President / Owner
Most Valuable Expert 2017
Most Valuable Expert 2012
Commented:
<<The installed application runs fine - I don't get any errors when using database features.>>

 I missed that.

<<I was curious about the above, if the DLL reg fails. If DAO isn't registered at some level, then the app should not be able to use it. Perhaps DAO35 is already registered on the Win10 box somewhere else?>>

 Sounds like.  The functions in the DLL must be available, or the calls would fail.

 I've always been under the impression though that DAO was a COM style object that needed to be registered in order to work, unlike a standard Windows DLL that just needs to be in the path in order to be called.

I guess I would say if it's all working, then don't worry about it.

Jim.
Most Valuable Expert 2012
Top Expert 2014
Commented:
That was sort of my take - if it's working don't worry with it - but it would be interesting to determine if DAO35 is already installed (and where) or if not, then what's running those DAO calls.

Author

Commented:
Hi Jim and Scott.

Thanks for clarifying the situation for me.

Regards,
Leigh

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial