我们公司使用 Access 数据库 2003(我知道,太旧了)和 Win server 2008。我们将一个 .mdb 文件拆分成两个。
几天前,我们在尝试打开模块时遇到了问题。一切都始于这样一个事实:我们的用户在数据库运行时开始收到无法识别的函数错误,以及一条错误信息
模块名称 xxx 拼写错误或指向不存在的模块
我们尝试使用 SaveAsText acModule,并创建了一个新的数据库,希望如果我们将损坏文件中的所有数据导入到新数据库中,就可以解决问题,但没有任何效果。
答案1
如果我遇到你的情况,我会创建一个新的数据库并将所有数据导入其中。然后调试代码,看看问题是否可以重现。
/decompile 开关也可以解决这个问题。您只需要备份,然后打开记事本并创建一行 .bat/.cmd,内容如下:
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "d:\My Documents\access\mayapp.mdb" /decompile
还可以阅读与您的问题相关的技术论坛和讨论。我发现的第一个几乎是:https://dba.stackexchange.com/questions/71906/ms-access-mdb-ldb-database-corrupted 或者寻找另一个适合您的解决方案的线程。
如果没有任何帮助,也许是时候寻求支持了?
答案2
2003 运行良好,但其中存在一些错误,有时会造成无法修复的问题。我不太确定您提到的错误是什么,但这可能会修复它:
首先,我发现频繁备份大有帮助。然后,当表单出现问题时,我只需将其删除(或将其重命名为“(坏)”),然后通过同时打开当前和备份 dbf 重新创建它,然后将备份表单复制(或拖动)到新表单区域。这样我就不必重新创建整个 .dbf
在执行此操作之前,请运行您的备份并确保其有效。如果不行,则选择一个较旧的备份,直到找到一个有效的备份。
希望这能有所帮助。如果不清楚的话可以问我 Q。
(我拥有较新版本的 Access,但更喜欢 2003,因为我认为它的性能比较新版本更好。)