Print Reports

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ian

    Print Reports

    (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_Clic k()

    On Error GoTo ErrReport

    Dim dbs As Database

    Dim rst As Recordset

    Dim strSQL As String

    Set dbs = CurrentDb()

    Set rst = dbs.OpenRecords et("PrintDefaul tsAssendingQuer y") ' 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("[OutlineDrwaingI mpSiteID]", "[OutlineCountQue ry]",
    "[OutlineDrwaingI mpSiteID]")

    If NumOutline < 1 Then

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

    Exit Sub

    End If



    'print these first

    DoCmd.OpenRepor t "SiteOutlineRep ", acNormal, "", "" 'open the reports

    DoCmd.OpenRepor t "NameAddressRep ", acNormal, "", ""

    DoCmd.OpenRepor t "IndexRep", acNormal, "", "" 'open the reports



    With rst

    ..MoveFirst

    Do Until .EOF

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

    DoCmd.OpenRepor t strSQL, acNormal, "", "" 'open the reports

    ..MoveNext

    Loop

    rst.Close

    End With





    Exit_OpenCustRe p_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_OpenCustRe p_Click



    End Sub














Working...