如何修复动态增长直到达到 2 GB 限制的 MS Access table?
How to fix MS Access table that grows dynamically until it hits the 2 GB limit?
我有一个 Access table "appears" 超过了它的 2 GB 限制,但实际上并没有那么大。事实上,整个 .mdb 文件的大小只有 4 MB。
table 显然已损坏,但在某种程度上使其难以处理。当我打开它时,它似乎在动态增长,并重复着大块的行。 table是复合主键,理论上应该不可能有重复行。
如果我在 MS Access 中打开 table 并尝试转到最后一条记录(或稍等片刻),我最终会收到一条错误消息,指出已达到 2GB 限制,并且“ #Error”出现在每个单元格中。
如果我尝试执行压缩和修复,它似乎挂起,副作用是创建了一个 2GB Database.mdb 文件。
我以前处理过损坏的 tables,但从来没有处理过动态复制自己的行的问题。任何建议如何解决这个问题?
以下是一些诊断措施和解决方案:
- 检查后台发生的 VBA 进程:在 OnOpen 或 OnCurrent 事件、按钮触发器、调用的表单后面
函数
=somefunction()
或宏 DoCmd.OpenMacro
。这听起来像是一个循环可能 运行 跨越所有行。如果
不知道从哪里开始,找到按钮触发器,更新事件后,退出
在右下方显示状态栏消息的表单上的例程或
光标显示 hourglass/spinning 轮子。
- 检查迭代操作查询(Append、Update 和 Make-Table
查询,ADO/DAO 记录集更新)。
- Decompile/Recompile VBA
代码
并压缩并修复数据库。
- 创建一个新数据库并从可能的数据库中导入表
损坏的副本。
我有一个 Access table "appears" 超过了它的 2 GB 限制,但实际上并没有那么大。事实上,整个 .mdb 文件的大小只有 4 MB。
table 显然已损坏,但在某种程度上使其难以处理。当我打开它时,它似乎在动态增长,并重复着大块的行。 table是复合主键,理论上应该不可能有重复行。
如果我在 MS Access 中打开 table 并尝试转到最后一条记录(或稍等片刻),我最终会收到一条错误消息,指出已达到 2GB 限制,并且“ #Error”出现在每个单元格中。
如果我尝试执行压缩和修复,它似乎挂起,副作用是创建了一个 2GB Database.mdb 文件。
我以前处理过损坏的 tables,但从来没有处理过动态复制自己的行的问题。任何建议如何解决这个问题?
以下是一些诊断措施和解决方案:
- 检查后台发生的 VBA 进程:在 OnOpen 或 OnCurrent 事件、按钮触发器、调用的表单后面
函数
=somefunction()
或宏DoCmd.OpenMacro
。这听起来像是一个循环可能 运行 跨越所有行。如果 不知道从哪里开始,找到按钮触发器,更新事件后,退出 在右下方显示状态栏消息的表单上的例程或 光标显示 hourglass/spinning 轮子。 - 检查迭代操作查询(Append、Update 和 Make-Table 查询,ADO/DAO 记录集更新)。
- Decompile/Recompile VBA 代码 并压缩并修复数据库。
- 创建一个新数据库并从可能的数据库中导入表 损坏的副本。