Question

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?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top