3

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

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

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

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

有任何想法吗?

在此处输入图像描述

4

1 回答 1

1

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

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

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

于 2016-05-12T12:37:24.610 回答