没有足够的可用内存来更新显示。关闭不需要的程序,然后重试。访问 2013 年报告

Posted

技术标签:

【中文标题】没有足够的可用内存来更新显示。关闭不需要的程序,然后重试。访问 2013 年报告【英文标题】:There isn't enough free memory to update the display. Close unneeded programs and try again. Access 2013 Report 【发布时间】:2017-08-18 07:50:04 【问题描述】:

我正在Access 2013 中开发一个数据库应用程序。操作系统是Win10。我创建了一份报告,用 WP T800 热敏打印机打印收据。我可以打开报告,但无法打印或打印预览此报告。

当我将“Microsoft 打印为 PDF”设置为默认打印机时,我可以打开、将收据另存为 PDF 文件或打印预览收据。当默认打印机为 WP T800 时会出现上述错误。

【问题讨论】:

这是一道编程题吗?如果是这样,您的代码在哪里?如果不是……好吧,这对 SO 来说不是主题 我的代码没有问题。运行良好。我在使用热敏收据打印机打印访问报告时遇到问题。我只能打开报告,但不能打印。 你是如何打开报告的?你是怎么打印的?你是用代码做的吗? DoCmd.OpenReport "receipt", acViewReport 用这一行我可以打开报告。然后我添加了 DoCmd.RunCommand acCmdPrint 来打印报告。当第二行运行时发生错误。然后我右键单击设计窗格中的报告并单击打印预览。 似乎是打印机驱动问题。 【参考方案1】:

一般来说,这个错误信息是比较准确的,但仍然模糊到有点不清楚。底线是发生了太多事情。正如它所建议的那样 - 关闭一些东西。例如,如果有其他打开的报告和表格可以关闭。测试一下。作为打开此新报告的代码的一部分,您可能需要为它们输入关闭命令。

如果可行的话,关闭多余的报告或表格是最简单的解决方法。更具挑战性的是作为报告记录源的极其复杂的查询堆栈。在这种情况下,您需要简化 - 所有排序都发生在报表对象中,因此从构成报表数据源的查询中消除它。如果您有很多聚合查询操作 - 作为第一步,您可能必须考虑将这些结果写入临时表,以降低查询集的复杂性。

【讨论】:

感谢您的回复。打印报表(receipt)时,前台表单(frmFront)和frmMonthlypass都是打开的。在我放的 SQL 的 WHERE 子句中; WHERE (((Receipt.ReceiptNo)=[forms]![frmMonthlyPass]![txtReceiptNo]));所以表格 frmMonthlypass 也必须打开。在我将纸张尺寸更改为 72 毫米(页)后,不再出现错误(没有足够的可用内存来更新它们显示......),但打印机在最后一行下方立即切纸,即它没有留下底部边距。然后剪下并扔出一小块额外的纸。

以上是关于没有足够的可用内存来更新显示。关闭不需要的程序,然后重试。访问 2013 年报告的主要内容,如果未能解决你的问题,请参考以下文章

电脑没有足够的可用内存来运行此程序,请清楚部分程序,然后再试。是怎么回事

用CAD打开文件时出现没有足够内存执行操作是啥意思?

为啥复制系列图片总显示没有足够的可用空间

内存不足是啥原因

与EPLAN Client Service 的连接不可用

Microsoft Visual Studio 没有足够的内存空间继续执行程序