Results 1 to 6 of 6
  1. #1
    davem05 is offline Novice
    Windows 7 64bit Access 2010 64bit
    Join Date
    Aug 2013
    Posts
    9

    Using VBA to generate multiple reports as seperate .pdf

    I have been struggling with this for a little while now. I would like to have the ability to save multiple reports (50-100, a few times a week), each requires saving using fields within the report, the report is based on a query "Result Query to Report" driven by the primary key "labNumber".



    I have searched various forums for a suitable loop, and the below is the closest I have come, however it gets stuck at the DoCmd.OutputTo line, I admit my VBA with Access isn't the greatest, I'm much more used to using Excel. I say it gets "stuck", but I have to cancel it to make it stop. I can see the report placed into the directory, but it seems to get stuck in the loop or just loops over the same primary key (not sure how accurate that is).
    The SQL is just a copy from the query builder.

    Any help would be massively appreciated.

    Thanks

    Code:
    Private Sub MultiReport_Click()
    Dim strRptFilter As StringDim rst As DAO.RecordsetSet rst = CurrentDb.OpenRecordset("SELECT DISTINCT [labNumber]  FROM [Cat Details] ORDER BY [labNumber];", dbOpenSnapshot)Dim myPath As StringDim strReportName As StringDim reportName As StringDoCmd.OpenReport "Results Certificate 2", acViewReport, "", "", acNormalmyPath = "C:\Users\Dave\desktop\"strReportName = Reports![Results Certificate 2]![labNumber] & Reports![Results Certificate 2]![clientFullName] & ".pdf"reportName = "Results Certificate 2"strRptFilter = "" & _"SELECT Client.clientFullName, Client.clientAddress, [Cat Details].labNumber, [Cat Details].catName, [Cat Details].catMicrochip," & _"[Cat Details].catRegistration, [Cat Details].catDOB, [Cat Details].catBreed, [Cat Details].catSex, [Cat Details].vetChecked," & _"[Cat Details].resultRDHCM, [Cat Details].dateProcessedRD, [Cat Details].resultMCHCM, [Cat Details].dateProcessedMC, [Cat Details].resultPKD," & _"[Cat Details].dateProcessedPKD, [Cat Details].resultPKIN, [Cat Details].dateProcessedPKIN, [Cat Details].resultPRA, [Cat Details].dateProcessedPRA," & _"[Cat Details].resultBG, [Cat Details].dateProcessedBG, [Cat Details].resultGM2, [Cat Details].dateProcessedGM2, [Cat Details].resultHypo," & _"[Cat Details].dateProcessedHypo, [Cat Details].resultAmber, [Cat Details].dateProcessedAmber, [Cat Details].resultChoc, [Cat Details].dateProcessedChoc," & _"[Cat Details].resultDil, [Cat Details].dateProcessedDil, [Cat Details].resultCinn, [Cat Details].dateProcessedCinn, [Cat Details].resultAgouti," & _"[Cat Details].dateProcessedAgouti, [Cat Details].resultSia, [Cat Details].dateProcessedSia, [Cat Details].resultBurClpt, [Cat Details].dateProcessedBurClpt," & _"[Cat Details].resultM1 , [Cat Details].dateProcessedM1, [Cat Details].resultMMM2, [Cat Details].dateProcessedMMM2, [Cat Details].resultM3, [Cat Details].dateProcessedM3," & _"[Cat Details].resultM4 , [Cat Details].dateProcessedM4, [Cat Details].resultGSD, [Cat Details].dateProcessedGSD, [Cat Details].resultSMA, [Cat Details].dateProcessedSMA" & _"FROM Client INNER JOIN [Cat Details] ON Client.[clientID] = [Cat Details].[clientID];" & _"WHERE ((([Cat Details].labNumber) Between [lab number from] And [lab number to]));"Do While Not rst.EOFstrRptFilter = "[labNumber] = " & Chr(34) & rst![labNumber] & Chr(34)DoCmd.OutputTo acOutputReport, , acFormatPDF, myPath & strReportName, FalseDoEventsrst.MoveNextLooprst.CloseSet rst = Nothing End Sub

  2. #2
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    Can you post the code in a more readable format?
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  3. #3
    davem05 is offline Novice
    Windows 7 64bit Access 2010 64bit
    Join Date
    Aug 2013
    Posts
    9
    Quote Originally Posted by pbaldy View Post
    Can you post the code in a more readable format?
    My apologies, I hadn't managed to notice it copied over like that, late night!

    Code:
    Private Sub MultiReport_Click()
    
    
    Dim db As DAO.Database
    
    
    Dim strRptFilter As String
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT [labNumber]  FROM [Cat Details] ORDER BY [labNumber];", dbOpenSnapshot)
    
    
    Dim myPath As String
    Dim strReportName As String
    Dim reportName As String
    
    
    DoCmd.OpenReport "Results Certificate 2", acViewReport, "", "", acNormal
    
    
    myPath = "C:\Users\Dave\desktop\"
    strReportName = Reports![Results Certificate 2]![labNumber] & Reports![Results Certificate 2]![clientFullName] & ".pdf"
    reportName = "Results Certificate 2"
    
    
    strRptFilter = "" & _
    "SELECT Client.clientFullName, Client.clientAddress, [Cat Details].labNumber, [Cat Details].catName, [Cat Details].catMicrochip," & _
    "[Cat Details].catRegistration, [Cat Details].catDOB, [Cat Details].catBreed, [Cat Details].catSex, [Cat Details].vetChecked," & _
    "[Cat Details].resultRDHCM, [Cat Details].dateProcessedRD, [Cat Details].resultMCHCM, [Cat Details].dateProcessedMC, [Cat Details].resultPKD," & _
    "[Cat Details].dateProcessedPKD, [Cat Details].resultPKIN, [Cat Details].dateProcessedPKIN, [Cat Details].resultPRA, [Cat Details].dateProcessedPRA," & _
    "[Cat Details].resultBG, [Cat Details].dateProcessedBG, [Cat Details].resultGM2, [Cat Details].dateProcessedGM2, [Cat Details].resultHypo," & _
    "[Cat Details].dateProcessedHypo, [Cat Details].resultAmber, [Cat Details].dateProcessedAmber, [Cat Details].resultChoc, [Cat Details].dateProcessedChoc," & _
    "[Cat Details].resultDil, [Cat Details].dateProcessedDil, [Cat Details].resultCinn, [Cat Details].dateProcessedCinn, [Cat Details].resultAgouti," & _
    "[Cat Details].dateProcessedAgouti, [Cat Details].resultSia, [Cat Details].dateProcessedSia, [Cat Details].resultBurClpt, [Cat Details].dateProcessedBurClpt," & _
    "[Cat Details].resultM1 , [Cat Details].dateProcessedM1, [Cat Details].resultMMM2, [Cat Details].dateProcessedMMM2, [Cat Details].resultM3, [Cat Details].dateProcessedM3," & _
    "[Cat Details].resultM4 , [Cat Details].dateProcessedM4, [Cat Details].resultGSD, [Cat Details].dateProcessedGSD, [Cat Details].resultSMA, [Cat Details].dateProcessedSMA" & _
    "FROM Client INNER JOIN [Cat Details] ON Client.[clientID] = [Cat Details].[clientID];" '& _
    '"WHERE ((([Cat Details].labNumber) Between [lab number from] And [lab number to]));"
    
    
    Do While Not rst.EOF
    strRptFilter = "[labNumber] = " & Chr(34) & rst![labNumber] & Chr(34)
    
    
    DoCmd.OutputTo acOutputReport, "Results Certificate 2", acFormatPDF, myPath & strReportName
    DoEvents
    rst.MoveNext
    Loop
    
    
    rst.Close
    Set rst = Nothing
    
    
    
    
    
    
    End Sub

  4. #4
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    No worries. I see a few things. For starters, the first line setting strRptFilter is meaningless, since it isn't used and gets reset inside the loop anyway. Plus you don't use it in the loop for anything anyway. Secondly, you get the report values before the loop, so they will always be the same. Similarly, since you've opened the report before the loop, I think you'd always get the same output anyway.
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  5. #5
    davem05 is offline Novice
    Windows 7 64bit Access 2010 64bit
    Join Date
    Aug 2013
    Posts
    9
    Thanks for looking at it, much appreciated.
    I admit I didn't really know what I was doing, I've gone back to the drawing board on this one.
    Thanks

  6. #6
    June7's Avatar
    June7 is offline VIP
    Windows 7 64bit Access 2010 32bit
    Join Date
    May 2011
    Location
    The Great Land
    Posts
    52,930
    How to attach file: http://www.accessforums.net/showthread.php?t=70301 To provide db: copy, remove confidential data, run compact & repair, zip w/Windows Compression.

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Display multiple rows into seperate columns
    By levinkev in forum Queries
    Replies: 1
    Last Post: 08-30-2012, 11:02 AM
  2. Replies: 3
    Last Post: 01-17-2012, 12:07 PM
  3. Generate reports by frequency
    By MFS in forum Programming
    Replies: 2
    Last Post: 11-18-2010, 08:09 AM
  4. using a Form with combo boxes to generate reports
    By mistervelasco in forum Access
    Replies: 2
    Last Post: 10-28-2009, 03:38 AM
  5. Replies: 1
    Last Post: 03-11-2006, 07:38 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums