带有dbEncrypt的CompactDatabase返回“3001:无效参数”错误

时间:2013-01-13 09:57:33

标签: ms-access vb6 ms-access-2010 ms-jet-ace compact-database

我在尝试时遇到3001: Invalid argument错误:

DbEngine.CompactDatabase "db1.accdb", "db2.accdb", , dbEncrypt

我相信该功能正在使用ACEDAO.DLL版本14.0.6016.1000

可能是错误的原因是什么?它似乎只发生在dbEncrypt

2 个答案:

答案 0 :(得分:1)

正如Remou的回答中提到的文章所示,dbEncrypt需要密码:

CompactDatabase firstdb, seconddb, ";pwd=secret", dbEncrypt

似乎无法在同一个调用中进行升级,因此我需要两行来将较旧的MDB升级为加密的ACCDB。请注意每行中密码的位置:

CompactDatabase oldMDB, encryptedDb, ";pwd=secret", dbEncrypt
CompactDatabase encryptedDb, upgradedDb, , dbVersion120, ";pwd=secret"

以下操作不起作用并给出了Invalid argument错误:

CompactDatabase oldMDB, encryptedAccdb, ";pwd=secret", dbEncrypt + dbVersion120

答案 1 :(得分:0)

似乎可能是密码:http://social.msdn.microsoft.com/Forums/et-EE/accessdev/thread/317b025c-07ff-4c84-883f-5f602e88af9d

DbEngine.CompactDatabase "db1.accdb", "db2.accdb", ";pwd=apass"

打开db2.accdb时,可以选择Decrypt数据库。