1
4
您尝试过内置的访问压缩/修复工具吗?这应该从数据库中刷新已删除的记录。 具体位置因运行的Access版本而异,但在Access 2003上,它位于“工具”>“数据库实用程序”>“压缩和修复数据库”下。一些早期版本的Access有两个独立的工具-一个用于紧凑型,一个用于维修-但它们是从类似的位置访问的。如果它们在客户机拥有的版本上是独立的,则需要同时运行这两个版本。 这应该是一个非破坏性的操作,但是最好在mdb文件的副本上进行测试(很抱歉声明了明显的错误)。 |
2
4
访问MVP的Tony Toews有一个全面的腐败指南: Corrupt Microsoft Access MDBs FAQ
顺便说一下, decompile 对于在编码时整理出奇怪的事件和提高启动时间非常有用。 |
3
3
你也可以试试这个 Command line utility 安迪 |
4
3
压缩和导入不会解决所报告错误的问题,这显然是备忘录字段的损坏指针。唯一能做的就是删除并重新创建导致问题的记录。您需要找到编辑备忘录数据的方法(或者消除备忘录字段——您真的需要超过255个字符吗?)这不会使你面临腐败风险。这意味着避免对备忘录字段的表单进行绑定控制。 相反,使用未绑定的文本框,并在表单的oncurrent事件中,从表单的基础记录源分配当前数据:
要保存对未绑定控件的编辑,请使用控件的AfterUpdate事件:
为什么备忘录字段容易损坏?因为它们与非备忘录字段不存储在同一个数据页中,但相反,记录主数据页中的所有内容都是指向存储实际备忘录数据的其他数据页(如果数据量很大,则为一组数据页)的指针。如果不是这样做的话,带有备忘录的记录将很快超过最大记录长度。 指针相对容易损坏,通常在绑定控件中编辑时出现致命问题。使用未绑定控件进行编辑并不能完全消除问题,但意味着暴露于危险中的时间非常短(即,在AfterUpdate事件中执行这两行代码所需的时间)。 |
5
2
除了上面已经发布的选项外,我还使用了另一个简单的方法:只需创建一个新的mdb文件并从损坏的文件导入所有对象。这样做时,不要忘记获取系统和/或隐藏对象。 |
Stormer · 从Access格式化Excel单元格无效 2 年前 |
schalld · 从ms access中执行URL 2 年前 |
Lando · 希望更正我的更新后事件(MS Access) 6 年前 |
MStudz · 从VBA查询访问权限 6 年前 |
Roland · 简单Case语句中的语法错误 6 年前 |
JZeig1 · 如何以编程方式在组合框中选择值? 6 年前 |