使用许多子报告访问2013 - 系统资源错误

时间:2013-08-09 17:48:06

标签: vba ms-access ms-access-2013

我的数据库有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. 当我直接打开打印预览模式时,我可以按原样查看,但是在尝试打印时出现相同的错误,并且多次发生(这使得我认为在处理子报告时会发生这种情况) )有时会打印部分纸张,有时根本不打印。
  3. 有什么想法吗?

    像往常一样,我会回答任何问题,发布任何图片,并做任何我需要做的事情来帮助了解情况。

2 个答案:

答案 0 :(得分:0)

有时候解决方案是最好的解决方案。 : - )

您可以创建多个报告,而不是数十个子报告,这些报告可以合并为最终结果。显然,一些代码可以让你连续打印它们。


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

答案 1 :(得分:0)

几个可能的原因:

  1. 删除所有不需要的代码。片段很棒,除非你不明白他们做了什么。至少测试每一行并注释掉你能做的一切。对于故障排除,没有其他方法可以启动。
  2. 您的代码似乎打开了一个名为dbs的数据库对象。让对象保持打开是对系统资源的经典滥用。见here
  3. 您是否链接到外部数据,例如使用“ODBC”?做一些研究,以确保不会产生问题。
  4. 确保您的数据库位于“受信任位置”。有关信息,请参阅here
  5. 您没有提及此报告过去是否有效......如果有,发生了什么变化?