Solved

VB6, MS Access on a Windows 7 PC

Posted on 2014-10-08
5
701 Views
Last Modified: 2014-10-10
I have an existing VB6 application that has been running for years on an XP machine.
it used MS Access as the DB storage
We are looking to convert to W7 x64, currently the customer is using MS Access 2010 X64 bit.

On my development PC with W7-Pro, MS Access 2010 32bit the application works fine
I have converted all the Access files over to 2007/2010 format (.accdb) and changes my code as well.

I have two (2) installation packages,
 - one (1) before I made the upgrade for the new MS Access format (my Ver 1.2)
   - Ver 1.2 uses MS Access 2002 file format (.mdb)
 - one (1) after I made the upgrade for the new MS Access format (my Ver 2.0)
   - Ver 2.0 uses 2007/2010 file format (.accdb)

I have created an installation package and installed it on the customers PC that has
W7-Enterprise, MS Access x64 on it.

The opportunity is:
When I run either install on the customers PC i get three (3) errors during install:
1. msvcrt.dll   access violation occurred while copying file
2. mfc42.dll    access violation occurred while copying file
3. pdaddin.dll  error occurred while registering the file

When I give it a try,
Ver 1.2 runs fine
Ver 2.0 I get the error
   Run Time Error 429  ActiveX Component can't create object.

Not sure where to look next
0
Comment
Question by:Adam_930
  • 3
  • 2
5 Comments
 
LVL 57

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 total points
ID: 40368855
<<I have created an installation package and installed it on the customers PC that has
W7-Enterprise, MS Access x64 on it.>>

 Well lets sort some things out first....is the application in VB6 still or have you converted it to Access?

 The format of the DB itself really doesn't matter as long as you have the proper provider.  What's critical is the "bitness" of the application that's trying to access the DB.

Both 32 bit and 64 bit applications will run under a 64 bit OS, so it's critical to know what's being used.

Once you have determined that, then you can get the correct engine here:

http://www.microsoft.com/en-us/download/details.aspx?id=13255

Jim.
0
 

Author Comment

by:Adam_930
ID: 40368962
Jim,
Sorry for the confusion,
The original application is in VB6 and stores data to a MS Access 2002 file format
The new application is still in VB6 but we want to store data to a MS Access 2010 file format

So can the developing PC have a different version of MS Access (32bit) than the destination PC (64bit)?
0
 
LVL 57

Accepted Solution

by:
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 total points
ID: 40369013
<<Sorry for the confusion,>>

 Not a problem and not to be picky, but for future readers, because your using VB6, it's not technically correct to say "MS Access".  What your really talking about is the database engine that comes with Access, which is either JET or ACE.

 I know everyone says "it an Access database" and they are referring to a *.MDB or *.ACCDB (or some variation there of), but to lesson confusion let's not talk about "Access", because it's really not involved with this per say.  All you need is the database engine part because your using VB6.

 Ok so anyway, here's the problem; your VB6 app is 32 bit, and all that is installed is the 64 bit version of the database engine, so your program doesn't see the drivers.   You could confirm this by looking the ODBC manager and checking the drivers listed.

But in any case, you have two choices:

1. Your client uninstalls Office 2010 64 bit and installs Office 2010 32 bit, at which point your program will work with an adjusted provider.

or

2. You install the 32 bit version of database engine that was issued with Office 2007 (with 2010, you cannot have both 32 and 64 bit versions of the DB engine installed on the same machine).

Personally, I'd go for the first.   If you want to go for the second, here's the install that's needed:

http://www.microsoft.com/en-us/download/details.aspx?id=23734

In either case, if your using OLEDB, then you need to modify your provider to:

Microsoft.ACE.OLEDB.12.0

and you should be set.  If ODBC, then you at this point will have 32 bit ODBC drivers for the databases and your VB6 app should connect fine.

Jim.
0
 

Author Comment

by:Adam_930
ID: 40369075
Thanks Jim,
I will give this a try, it may take a couple of days to get it through
0
 

Author Closing Comment

by:Adam_930
ID: 40372881
We went with option #1 and it fixed my problem.
thanks for your help
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Possible fixes for Windows 7 and Windows Server 2008 updating problem. Solutions mentioned are from Microsoft themselves. I started a case with them from our Microsoft Silver Partner option to open a case and get direct support from Microsoft. If s…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now