【发布时间】:2016-05-11 20:17:43
【问题描述】:
我有一个带有显示大量子表单的表单的 Access 应用程序(32 位 Office,Windows 7)。每个子表单显示有关特定工厂车间状态的信息,并且所有子表单都需要同时查看。
在某一点之后,添加额外的子表单会产生错误“没有足够的内存来执行此操作。关闭不需要的程序并再次尝试该操作。”
使用一些除表单之外没有代码或对象的精简测试数据库,我发现当子表单的数量在 80 到 130 之间时会出现此错误,具体取决于我测试的机器。我的机器上有大量可用 RAM,我可以打开多个 Access 数据库(和主窗体)副本,只要它们分别位于不同的 Access 实例中。
我对访问限制、内存处理等进行了大量研究,但没有任何帮助。通过监视数据库对我的系统内存的需求,我看不到该区域的任何问题,我想知道错误消息是否是红鲱鱼。我想找到一种方法来增加分配给应用程序的资源,或者以某种方式允许添加更多的子表单。
有什么想法吗?
【问题讨论】:
-
错误信息肯定会产生误导——问题不在于系统内存,而在于任何内部资源耗尽。我怀疑您可以更改该分配。 --- 但是同时有 > 100 个子表单?我不敢相信这是显示数据的最佳方式。可以分享一下表格截图吗?
-
我建议您将数据的显示从表单更改为报告。正如安德烈所指出的,请张贴您正在实现的目标的屏幕截图
-
感谢您的回复!我发布了一个简化的屏幕截图。我知道使用这么多子表单是不寻常的,但我认为在这种情况下这是必要的。该表格显示在工厂车间的大屏幕上,以便工人和经理可以监控生产变量。我不能使用报告,因为表单必须自动刷新。经理单击单元格以输入和编辑值,因此这也是一个交互式表单。我能够显示 8-10 个单元格(行),每个单元格有 8 小时的时隙。一旦我试图超过这个值,我就会开始出错,即使表格和代码被删除。