I need to embed a MS Access database file with a windows application. This application would be installed at various client machines. Do the clients need to purchase a license for MS Access database?
-
1No, unless you plan to let them open the database using the Access interface – Steve Dec 12 '13 at 10:41
-
1There's a free Access runtime available, that may be relevant: http://www.microsoft.com/en-gb/download/details.aspx?id=39358 *The Microsoft Access 2013 Runtime enables you to distribute Access 2013 applications to users who do not have the full version of Access 2013 installed on their computers.* – Danny Beckett Dec 12 '13 at 10:41
-
4I'm voting to close this question as off-topic because **it is about licensing or legal issues**, not programming or software development. [See here](http://meta.stackoverflow.com/a/274964/1402846) for details, and the [help/on-topic] for more. – Kevin Brown-Silva Jun 17 '15 at 22:40
1 Answers
No, unless you plan to let them open the database using the Access interface.
However, if you distribute an accdb
file created with Access 2007 or upper and/or your app uses the Microsoft.ACE.OLEDB.12.0
OleDb provider, then you need to install, on the client machine, the Microsoft Access Database Engine
Instead if you have an Access 2003 (mdb) file then you don't need anything, the OleDb provider (Microsoft.Jet.OLEDB.4.0
) is already included in the NET Framework
Keep in mind that there are potential pitfalls here. If your app requires ACE then you should choose the correct bitness of the driver. This could be 32bit if your application is compiled for x86 target platform or 64bit if it is compiled for x64. The AnyCPU target is another problem by itself because it changes the bitness of your application depending on the target OS bitness.
Instead if you use the JET.OleDb then your application should always be compiled for x86 target platform because there is no 64bit version of JET.OleDb.
Searching on internet for "Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine" will give you tons of questions about this problem still not fully addressed by Microsoft.
-
64-bit applications will need to use the 64-bit version of the ACE provider to open `.mdb` files since there is no 64-bit version of the Jet provider. – Gord Thompson Dec 12 '13 at 11:05
-
As I said, the relationship between ADE Engine, OS and Target CPU is a bit complex and source of numerous problems. Take a look [here for example](http://stackoverflow.com/questions/17716207/the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-machine-w/17716238#17716238), not to mention if, on the target machine, there is Office installed – Steve Dec 12 '13 at 11:09
-
...except that your answer to *this* question doesn't actually *say* that or provide a link to the other answer that did. The statement "...if you have an Access 2003 (mdb) file then you don't need anything" is oversimplified and potentially misleading. – Gord Thompson Dec 12 '13 at 11:15
-
I see, but we are really departing from the original question here where the answer is just YES/NO. All right to be complete, I will add something about that problem – Steve Dec 12 '13 at 11:19