有没有一种方法可以在不打开文件的情况下提取访问模块?

时间:2019-11-15 18:39:25

标签: ms-access access-vba

我最终将数据库损坏到每次尝试打开它的位置,都会收到错误3022,“您对表的请求更改未成功,因为它们会在索引中创建重复的值。”

似乎无法恢复该文件,而我之前的备份是一个月前进行的。我已经能够提取除模块以外的所有内容,这是我最需要恢复的内容。我找不到能用的标准方法,因为它们需要打开数据库的能力(例如,尝试将其设置为VBA引用仍会产生相同的错误。)

是否有任何方法可以在不打开文件的情况下从文件中获取模块或代码?

编辑: 终于能够访问该文件。使用DBEngine.CompactDatabase,它可以进行压缩和修复。问题归结为“ MSysAccessStorage”表已损坏,并说“ Id不是该表中的索引”。我知道可以访问除模块以外的所有内容,除非模块无法运行,否则无法打开它们。

我将继续戳它,但是我不确定用于修复系统表的选项。任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:0)

不幸的是,Visual Basic for Applications项目已损坏。列出计数时,原始数据库甚至没有任何VBProject。我将这称为失败的原因。感谢所有尝试提供帮助的人。