You must check active instances and Release Access before quitting to avoid remaining processes
Something like :
string MyFile = Environment.CurrentDirectory + "\\Baseet.accde";
Microsoft.Office.Interop.Access.Application AccApp = null;
if (Process.GetProcessesByName("msaccess").Count() > 0)
{
AccApp = Marshal.GetActiveObject("Access.Application") as Microsoft.Office.Interop.Access.Application;
if (AccApp != null)
{
AccApp.CloseCurrentDatabase();
AccApp.OpenCurrentDatabase(MyFile, false, "017014a");
AccApp.RunCommand(Microsoft.Office.Interop.Access.AcCommand.acCmdAppMaximize);
}
}
else
{
AccApp = new Microsoft.Office.Interop.Access.Application();
AccApp.Visible = true;
AccApp.OpenCurrentDatabase(MyFile, false, "017014a");
AccApp.RunCommand(Microsoft.Office.Interop.Access.AcCommand.acCmdAppMaximize);
}
And when you have finished :
AccApp.Quit();
Marshal.ReleaseComObject(AccApp);
AccApp = null;