0

我的数据库有 28 个连接的表。其中 10 个表格用于使用多选项卡表单创建报价。填写完毕后,我必须将它们打印到报告上。该报告分为许多子报告...其中 31-32 个。然后需要将表单打印或导出为 PDF。

我正在运行具有 16 Gig Ram 和 8 核 CPU 的 PC。

要设置主报告的 RecordSource,我使用以下代码:

Private Sub Report_Open(Cancel As Integer)

  Dim dbs As Database
  Dim rstSQL As DAO.Recordset
  Dim strSQL As String

  Set dbs = CurrentDb

  strSQL = "SELECT fJobID FROM tblJobs GROUP BY fJobID " _
      & "HAVING (((fJobID)= " & [Forms]![frmHub2]![Combo0].[Value] & "));"

  Debug.Print strSQL

  Me.RecordSource = strSQL

End Sub

我不得不使用 VBA 将 的值[Forms]![frmHub2]![Combo0].[Value]注入 SQL 定义中。

什么有效

表单加载,我可以选择以前的工作来更新它们,我可以在报告视图中查看报告。

什么没有

  1. 一旦我尝试从报告视图转到打印预览,我就会收到“系统资源超出”错误。
  2. 当我直接打开打印预览模式时,我可以按原样查看它,但是在尝试打印时出现相同的错误,并且它发生了多次(这让我认为它在处理子报告时发生)有时它会打印部分纸张,有时根本不打印。

有什么想法吗?

像往常一样,我会回答任何问题,发布任何图片,并尽我所能帮助了解情况。

4

2 回答 2

0

有时,变通方法是最好的解决方案。:-)

或许您可以创建多个报告,而不是几十个子报告,这些报告组合在一起以获得最终结果。很明显,一些代码可以让你连续打印它们。


您的报表在功能上是未绑定的:它没有填充记录集。该ID值用作过滤子报告的变量。这是我能推断出的最好的——期待你的见解。如果我是正确的,也许这一观察结果将有助于为修改这份报告提供一种灵活性。

于 2013-08-12T17:00:30.393 回答
0

几个潜在的原因:

  1. 删除所有不需要的代码。片段很棒,除非您不了解它们的作用。至少测试每一行,并尽可能注释掉所有内容。对于故障排除,没有其他方法可以开始。
  2. 您的代码似乎打开了一个名为dbs. 让对象保持打开状态是对系统资源的典型滥用。见这里
  3. 您是否链接到外部数据,例如使用“ODBC”?做一些研究以确保这不会造成问题。
  4. 确保您的数据库位于“受信任的位置”。有关信息,请参见此处

你没有提到这份报告在过去是否有效……如果有效,有什么变化?

于 2013-08-13T20:36:53.543 回答