views:

63

answers:

3

I made a small application that connects to an Access database (a .mdb file). Do other users who want to use my application also need to have Microsoft Access installed? If this is the case, are there ways to get around this requirement through the user installing some free package?

I've researched this for a while and can't seem to get any answers. Any help is much appreciated.

A: 

Depending on the version of MS Access you're using, you need to install an appropriate version of the Microsoft Jet Engine. For older Access databases, the Jet Engine came with MDAC, but lately, it was removed from the MDAC distribution. Here is a blog that includes a link for the MS Access 2007 redistributable: Access Database Engine Redistributable. If you use a different version of Access, look for a different redistributable.

Alek Davis
Thanks for the quick response -- this is exactly what I was looking for.
j3st
The reason Jet was removed from MDAC was because Jet 4 is part of the OS starting with Windows 2000 (it is used by Active Directory). This is still the case. The main limitation nowadays is that Jet 4 is 32-bit only.
David-W-Fenton
A: 

Try Downloading the new 2010 Access database redistributable from MS. Will work on 64 bit as well.

+1  A: 

No one has clearly answered your question. If you're using MDB format, no, you don't need to distribute Access, as Jet 4 is installed on all copies of Windows starting with Windows 2000.

However, if you're compiling for something other than 32-bit, you'll have problems, in which case you'd need to download the 64-bit version of Jet/ACE that was created for Access 2010 64-bit and include it with your app.

David-W-Fenton
I'm actually still having problems connecting to my .mdb database. I am testing from a 32-bit machine without Access installed. If Jet 4 is installed on all copies by default, this makes me think that my application should work straight out of the box. I also tried downloading the Access Runtime, but that didn't help either. I am thinking the error with connecting to the database is with security concerns about the .mdb file being uncertified. I have yet to resolve this issue completely.
j3st
Well, you could post your connect string. In regard to security, Jet 4 does not have the "trusted locations" concept introduced in A2007, though there is "macro security" (another brand of "security theater") in A2003, but that's not relevant to the Jet db engine. There are 3 security issues: NTFS file permissions, Jet user-level security, and database password. The last is worthless and if there's a db password, you should just remove it, as it serves no useful purpose.
David-W-Fenton
My connection string is: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"somedb.mdb\"". I'm not sure how much that helps you. I have no password on the database and file permissions shouldn't be the problem...
j3st
Have you actually checked the NTFS permissions? Secondly, you don't mention Jet user-level security. When your connect string specifies no workgroup file, Jet will use the default workgroup, and maybe that's the wrong one for this particular MDB file.
David-W-Fenton