gpt4 book ai didi

ms-access - 微软 Access : There isn't enough memory to perform this operation

转载 作者:IT王子 更新时间:2023-10-28 23:33:05 26 4
gpt4 key购买 nike

我在具有 4GB RAM 的双核机器上使用 Access 2003,运行 Windows XP (Service Pack 3) [5.1.2600]

定期,我收到一条错误消息“没有足够的内存来执行此操作。关闭不需要的程序并重试该操作。”

检查任务管理器表明有大量可用内存。关闭其他打开的程序没有区别。

这种情况偶尔会发生,并且在不同的情况下:有时在保存表单设计或 VBA 代码更改时,有时在打开并使用多个表单时。

如果尝试保存设计更改并发生此错误,则 Access 对象已损坏且无法恢复。

非常欢迎就可能导致此问题的原因提出任何建议。

MTIA

最佳答案

您前端的 VBA 项目可能已损坏。您需要从头开始重建它,然后使用正确的 Access 编码实践:

  1. 在 VBE 选项中,关闭 COMPILE ON DEMAND(请参阅 Michael Kaplan's article on DECOMPILE 了解详情)。

  2. 在 VBE 选项中,开启 REQUIRE VARIABLE DECLARATION。

  3. 在 VBE 中,自定义您的工具栏,以便轻松 Access “编译”按钮(它位于“调试”菜单上)。我还建议添加 CALL STACK 按钮(从 VIEW 菜单中),因为它可以方便地在中断模式下调试错误。这里的重点是让调试和编译尽可能简单。

  4. 设置好环境后,检查新恢复项目中的所有模块,并将 OPTION EXPLICIT 添加到缺少它的每个模块的顶部。然后编译。您会很快发现哪里有无效代码,您需要修复它。

  5. 从现在开始,在编程的时候,经常编译,每两三行代码之后。在编码时,我可能每天编译我的项目 100 次或更多次。

  6. 定期反编译您的项目并压缩并重新编译它。这将清除在常规开发过程中积累的任何污垢。

这些做法可确保非损坏项目中的代码尽可能保持干净。它无法恢复已经损坏的项目。

关于如何重建项目,我想我会走极端路线,用 Application.SaveAsText 导出所有对象,然后用 Application.LoadFromText 将它们导入一个新的空白数据库。这比简单地从现有损坏的前端导入要好,因为导入可以导入无法在 SaveAsText/LoadFromText 循环中存活的损坏结构。

我每天都在 Access 中编程,使用大量代码(包括大量独立类模块)的非平凡应用程序。 5 年多来我没有因为代码损坏而丢失过一个对象,那是在我还在使用 A97 的那一天。

关于ms-access - 微软 Access : There isn't enough memory to perform this operation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1575487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com