This tip gives C# code to determine the installation of the Access database engine in a client system.
after I uninstall Access database engine the file ACECORE.DLL for Office 2010
is still in the same path, thus my purpose is failed. After some investigation on
my system I found the piece of code shown below which would help in determining the installation of
the "Access Database Engine".
This piece of code will be helpful for those who have just started in C#, like me :-)
Using the code
string AccessDBAsValue = string.Empty;
RegistryKey rkACDBKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\Installer\Products");
if (rkACDBKey != null)
foreach(string subKeyName in rkACDBKey.GetSubKeyNames())
using (RegistryKey RegSubKey = rkACDBKey.OpenSubKey(subKeyName))
foreach (string valueName in RegSubKey.GetValueNames())
if (valueName.ToUpper() == "PRODUCTNAME")
AccessDBAsValue = (string)RegSubKey.GetValue(valueName.ToUpper());
if (AccessDBAsValue.Contains("Access database engine"))
llretval = true;
Points to Note
Please note that if the Access Database Engine is installed on an XP 32 bit system, the value will be "Microsoft Office Access database engine 2007" in the
Registry key. For Office 2010 on a Win7 32 bit system it will be "Microsoft Access database engine 2010" [I did not yet try
other versions], so there is a little difference
in these values.