MS Access Too Many Subforms 错误“没有足够的内存来执行此操作”

Posted

技术标签:

【中文标题】MS Access Too Many Subforms 错误“没有足够的内存来执行此操作”【英文标题】:MS Access Too Many Subforms Error "There isn't enough memory to perform this operation" 【发布时间】:2016-05-11 20:17:43 【问题描述】:

我有一个带有显示大量子表单的表单的 Access 应用程序(32 位 Office,Windows 7)。每个子表单显示有关特定工厂车间状态的信息,并且所有子表单都需要同时查看。

在某一点之后,添加额外的子表单会产生错误“没有足够的内存来执行此操作。关闭不需要的程序并再次尝试该操作。”

使用一些除表单之外没有代码或对象的精简测试数据库,我发现当子表单的数量在 80 到 130 之间时会出现此错误,具体取决于我测试的机器。我的机器上有大量可用 RAM,我可以打开多个 Access 数据库(和主窗体)副本,只要它们分别位于不同的 Access 实例中。

我对访问限制、内存处理等进行了大量研究,但没有任何帮助。通过监视数据库对我的系统内存的需求,我看不到该区域的任何问题,我想知道错误消息是否是红鲱鱼。我想找到一种方法来增加分配给应用程序的资源,或者以某种方式允许添加更多的子表单。

有什么想法吗?

【问题讨论】:

错误信息肯定会产生误导——问题不在于系统内存,而在于任何内部资源耗尽。我怀疑您可以更改该分配。 --- 但是同时有 > 100 个子表单?我不敢相信这是显示数据的最佳方式。可以分享一下表格截图吗? 我建议您将数据的显示从表单更改为报告。正如安德烈所指出的,请张贴您正在实现的目标的屏幕截图 感谢您的回复!我发布了一个简化的屏幕截图。我知道使用这么多子表单是不寻常的,但我认为在这种情况下这是必要的。该表格显示在工厂车间的大屏幕上,以便工人和经理可以监控生产变量。我不能使用报告,因为表单必须自动刷新。经理单击单元格以输入和编辑值,因此这也是一个交互式表单。我能够显示 8-10 个单元格(行),每个单元格有 8 小时的时隙。一旦我试图超过这个值,我就会开始出错,即使表格和代码被删除。 【参考方案1】:

这个问题我很清楚,和子表单有关。几年前,我申请了一份为期 36 个月的生产计划,看起来和你的申请非常相似。

我建议您找到一种解决方案,仅使用一个子表单,将单行中的所有控件放在其上。将控件命名为 t1、t2、t3、t4 等,并在后面放置一些 VBA 代码,这些代码将控件绑定到您的字段。

从长远来看,我建议放弃 MS Access 并使用更现代的 C# 和 XAML。即使使用 C#/WinForms,您也比使用 Access 具有更大的灵活性。 WinForms 对于各种屏幕尺寸和分辨率只是有点不灵活。

【讨论】:

更新:我仍然想在某个地方(注册表?)找到一个可以解决此问题的开关。同时,我使用安装的 64 位 Access 2010 运行时版本进行了测试。我能够毫无问题地显示 300 多个子表单。我可能不得不将所有人都转换为 64 位 Access,根据需要重新编写代码,然后进入现代世界。

以上是关于MS Access Too Many Subforms 错误“没有足够的内存来执行此操作”的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 R0915: Too many statements (69/50) (too-many-statements) in pylint?

too many open files怎么解决

中标麒麟 错误异常too many open files解决方法

错误 310 (net::ERR_TOO_MANY_REDIRECTS):

kafka too many open files的解决方法

too many open files 的问题怎么解决