Solved

VB6, MS Access on a Windows 7 PC

Posted on 2014-10-08
5
728 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Query to summarise data Like Pivot Table 3 29
Advice in Xamarin 21 52
can't find file error on web browser 1 15
windows tablets 1 18
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
This Micro Tutorial will give you a introduction in two parts how to utilize Windows Live Movie Maker to its maximum capability. This will be demonstrated using Windows Live Movie Maker on Windows 7 operating system.
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…

911 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

24 Experts available now in Live!

Get 1:1 Help Now