Solved

VB6, MS Access on a Windows 7 PC

Posted on 2014-10-08
5
780 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

On some Windows 7 (SP1) computers, Windows Update becomes super slow even the computer is reasonably fast.  There's one solution that seemed to have worked well for me (after trying a few other suggested solutions).
As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
The viewer will learn how to successfully download and install the SARDU utility on Windows 7, without downloading adware.
The Task Scheduler is a powerful tool that is built into Windows. It allows you to schedule tasks (actions) on a recurring basis, such as hourly, daily, weekly, monthly, at log on, at startup, on idle, etc. This video Micro Tutorial is a brief intro…

730 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