心得/经验/绝招
ACCESS提示错误信息,自动崩溃,数据库损坏的问题与解决办法
2017-10-10 11:09:25

在Access设计的系统中,偶尔会遇到类似的几个问题:

ACCESS提示自动修复自动备份?为什么会提示错误后自动关闭?为什么有时候运行正常的 MDB 数据,再次用 ACCESS 打开,它会提示数据损坏要自动修复,修复前要备份?为什么有时候运行正常的 MDB 文件,打开数据时总提示非法错误,要求备份、修复,但是怎么修都修不好,非法错误依旧?access的库文件在使用一段时间后,在打开的时候就有可能出现数据库错误,并且已经自动修复了。请问这是什么原因造成数据库损坏的呢?为什么刚才还能正常运行的数据库突然提示 ACCESS 非法错误,或者 ACCESS 内存不可读/写,然后自动退出呢?

 

上述情况在很多环境下就会遇到,但是引起的原因非常多,以下只能列举一部分:

1、原因:异常退出,客户在使用数据库的时候用 ctrl+alt+del 键调出任务管理器在 ACCESS 正在操作 MDB 文件时终止进程,或者因为 ACCESS 短时间无响应强行终止 ACCESS,导致部分数据损坏。解决方法:告知用户不要进行该操作,并尽量多做数据备份

2、原因:对 MDB 文件的读写操作太频繁。由于 ACCESS 的 MDB 文件管理本质上是操作系统来管理的,由于 WINDOWS 软件的不稳定以及硬件上(比如硬盘)的不稳定,造成频繁操作文件导致文件本身从二进制上丢失部分数据解决方法:换用更好更稳定的机器运行,尽量多做数据备份,对数据量大确不进行写操作的表,尽量拆分数据库,将不需要更改的表放在一个 MDB 中。

3、原因:并发用户太多。由于 ACCESS 的 MDB 文件管理本质上是操作系统来管理的,服务器端的文件由于多个并发读写请求被锁死或两个用户同时完成写操作(这种操作理论上是不允许的,单实际情况的确有)解决方法:换用更好更稳定的机器运行服务器端的 MDB ,使用更快更稳定的网络,尽量多做数据备份。如果并发用户实在太多,比如超过20人,请尽量使用免费的 MSDE 或者 SQL SERVER。

4、原因:编写客户端界面时引用类库太多,由于不可知的兼容性等问题造成冲突,导致WINDOWS 终止 ACCESS 进程。如果 MDB 正在完成写操作,则肯定会损坏数据库。解决方法:拆分数据库,数据放一个 MDB ,界面放另外一个 MDB ,尽量多做备份。出现始终无法修复的情况可以另外建立一个新的数据库,然后导入所有表、窗体、报表、查询、模块等对象。