2

我在 MS Access 2007 中有一个零星的错误,我无法可靠地重现。情况如下:

  1. 将 500K+ 行文本数据从文件加载到表中
  2. [用加载的数据做事]
  3. 尝试使用 CurrentDB() 从 vba 中删除表的内容。执行 "Delete * from RawImport",其中 RawImport 是表名

在第 3 步,代码有时会挂起,直到我按 ctrl-Break。发生这种情况时,如果 Ctrl-F11 回到数据库视图并尝试删除表中的内容,它总是会给我一个错误“没有足够的内存或磁盘空间来完成这个动作用undo,你想继续“(意译,我无法捕捉到错误)

退出 Access 并重新加载通常会清除此问题,以便 VBA 代码运行,这一切都很好,但我该如何捕获呢?它不会在删除时在 vba 中生成错误,它只是坐在那一行,直到我手动中断。

4

1 回答 1

0

最后,我确实遵循了创建临时数据库的方法,在该数据库中动态创建表,将其与我的主数据库链接,然后在每个加载/处理周期中删除临时数据库。它工作正常,但对于一个非常简单的数据库用例来说有点过于复杂了——不难看出为什么人们如此容易地超越 Access。

于 2019-03-06T17:35:18.590 回答