By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,678 Members | 2,439 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,678 IT Pros & Developers. It's quick & easy.

Print Reports

P: n/a
Ian
(Sorry if I have repeated this, it did not appear the first time)

I have the following code on a button. The idea is that when this button is
clicked it prints several reports automatically then loops through several
other reports and prints them. These reports are not sent to a printer but
sent to a program called Fine Print PDF Factory which turns them into a PDF
file (set as the default printer)

This all works perfectly unless any of the reports have more than about
250-300 pages, if more than this then I occasionally get an error message
saying "Out Of Stack Space" or more often Access just closes in the middle
of a report without any message.

I am concerned about the (rst.Close) part, is this sufficient to return the
system memory? Should there be other specific command to do this? Does
anyone have any suggestions?

I have not tried sending it to a real printer as these reports contain
colour pictures and 300 of them would take a long time to test, I suppose
the problem could be with the PDF Factory but this seems unlikely as I have
printed long Word documents using it.

Many thanks in advance.



Private Sub Command134_Click()

On Error GoTo ErrReport

Dim dbs As Database

Dim rst As Recordset

Dim strSQL As String

Set dbs = CurrentDb()

Set rst = dbs.OpenRecordset("PrintDefaultsAssendingQuery") ' set to the
query

'added 7/7/03. print Cover first then Index report before other reports

'Check if any records first

Dim NumRecs As Long

NumRecs = DCount("[SortOrder]", "[TocCountQuery]", "[SortOrder]")

If NumRecs < 1 Then

MsgBox "There is No Data to print from any of the selected reports.",
vbCritical, "Error"

Exit Sub

End If

'Check if Outline Picture has been selected 24/07/03

Dim NumOutline As Long

NumOutline = DCount("[OutlineDrwaingImpSiteID]", "[OutlineCountQuery]",
"[OutlineDrwaingImpSiteID]")

If NumOutline < 1 Then

MsgBox "Please enter the Site Outline Picture before printing reports.",
vbCritical, "Error"

Exit Sub

End If

'print these first

DoCmd.OpenReport "SiteOutlineRep", acNormal, "", "" 'open the reports

DoCmd.OpenReport "NameAddressRep", acNormal, "", ""

DoCmd.OpenReport "IndexRep", acNormal, "", "" 'open the reports

With rst

..MoveFirst

Do Until .EOF

strSQL = rst![ActualName] 'The field name on the query

DoCmd.OpenReport strSQL, acNormal, "", "" 'open the reports

..MoveNext

Loop

rst.Close

End With

Exit_OpenCustRep_Click:

Exit Sub

ErrReport: 'Error checking

Select Case err

Case 2501 'the open report action was cancelled

Resume Next

Case Else

MsgBox Error$

End Select
Resume Exit_OpenCustRep_Click

End Sub




Nov 12 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.