?
Solved

VB6, MS Access on a Windows 7 PC

Posted on 2014-10-08
5
Medium Priority
?
835 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 58

Assisted Solution

by:Jim Dettman (Microsoft MVP/ EE MVE)
Jim Dettman (Microsoft MVP/ EE MVE) earned 2000 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 58

Accepted Solution

by:
Jim Dettman (Microsoft MVP/ EE MVE) earned 2000 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

What Is Blockchain Technology?

Blockchain is a technology that underpins the success of Bitcoin and other digital currencies, but it has uses far beyond finance. Learn how blockchain works and why it is proving disruptive to other areas of IT.

Question has a verified solution.

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

It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
This Micro Tutorial will teach you how to the overview of Microsoft Security Essentials. This is a free anti-virus software that guards your PC against viruses, spyware, worms, and other malicious software. This will be demonstrated using Windows…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Suggested Courses
Course of the Month12 days, 19 hours left to enroll

777 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