文档
我正在编写一个C#程序,该程序需要将受密码保护的.mdb Access数据库转换为受密码保护的.accdb文件。该函数看起来有点像:
public int M2AConvert( string password, string newPath, stringOldPath )
我现在的代码是:
Microsoft.Office.Interop.Access.Application accessApp = new
Microsoft.Office.Interop.Access.Application();
accessApp.Visible = true;
string sourceFile = oldPath;
string desFile = newPath;
accessApp.SysCmd((Microsoft.Office.Interop.Access.AcSysCmdAction)603, sourceFile, desFile);
这似乎不适用于受密码保护的文件,因此存在问题。
任何帮助将不胜感激。
使用带有以下代码的 DbEngine 来允许使用密码进行转换:
using Microsoft.Office.Interop.Access.Dao;
...
DBEngine daoEng = new DBEngine();
daoEng.CompactDatabase(dbNameSrc, dbNameDest, LanguageConstants.dbLangGeneral, dbVersion, pwd);
其中 dbVersion 是 dbVersion120,用于.mdb.accdb。其他 dbVersion 类型可用于在 .accdb 到 .mdb 之间进行转换,但请记住 dbVersion40 适用于 Jet 4.0,它是 .mdb 文件提供程序的最新版本。
此处列出了所有 dbVersion 转换类型:Microsoft