Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

VB6, MS Access on a Windows 7 PC

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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

I have had my own IT business for a very long time. I started mostly with hardware and after about a year started to notice a common theme. I had shelves with software boxes -- Peachtree, Quicken, Sage, Ouickbooks -- and yet most of my clients were…
Microsoft Access has a limit of 255 columns in a single table; SQL Server allows tables with over 255 columns, but reading that data is not necessarily simple.  The final solution for this task involved creating a custom text parser and then reading…
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…
How can you see what you are working on when you want to see it while you to save a copy? Add a "Save As" icon to the Quick Access Toolbar, or QAT. That way, when you save a copy of a query, form, report, or other object you are modifying, you…
Suggested Courses
Course of the Month14 days, 23 hours left to enroll

578 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