使用ConvertAccessProject()转换Access数据库遇MDW权限问题咨询
Access带工作组文件(.mdw)的数据库转换解决方案
你可以借助security.mdw文件完成转换,核心是先让Access实例关联对应的工作组信息文件,再执行转换操作,具体步骤如下:
- 关联工作组信息文件:在调用
ConvertAccessProject前,通过Access实例的DBEngine.SystemDB属性设置security.mdw的完整路径,确保Access能识别原数据库的权限验证规则。 - 处理数据库密码(可选):如果原.mdb数据库设置了访问密码,需要在
ConvertAccessProject中传入SourcePassword参数。 - 执行转换:完成上述配置后再调用转换方法即可。
修改后的代码示例:
var newApp = new Microsoft.Office.Interop.Access.Application(); // 关联工作组信息文件 newApp.DBEngine.SystemDB = @"C:\Users\Documents\security.mdw"; // 执行转换,若原数据库有密码,添加SourcePassword参数 newApp.ConvertAccessProject( @"C:\Users\Documents\Old.mdb", @"C:\Users\Documents\NewDB.accdb", Microsoft.Office.Interop.Access.AcFileFormat.acFileFormatAccess2007, "原数据库密码(如果有)" // 无密码则留空或省略该参数 ); newApp.Quit();
注意事项:
- 转换后的.accdb文件不再支持.mdw格式的工作组权限,若后续需要权限控制,需使用Access 2007及以上版本的用户级安全机制。
- 确保运行代码的账户对原.mdb、security.mdw以及目标路径有读写权限。
内容的提问来源于stack exchange,提问作者coder2468
相关产品推荐
相关产品推荐

