Solved

Close all open reports

Posted on 2010-11-28
8
456 Views
Last Modified: 2012-05-10
I have this code that I have adapted from a post i found on here.
I want to close all open reports in the current database

The code is in the Timer event of a hidden form (frmRprtTimer) that opens when any report opens.

Option Compare Database
Option Explicit

Private Sub Form_Timer()
On Error GoTo Err_Form_Timer
Dim rpt As Report
Dim db As Database
Dim cont As Container
    Set db = CurrentDb()
    Set cont = db.Containers("Reports")
    For Each rpt In cont
        DoCmd.Close
    Next rpt
    DoCmd.Close acForm, "frmRprtTimer"
Exit_Form_Timer:
    Exit Sub
Err_Form_Timer:
    MsgBox Err.Description
    Resume Exit_Form_Timer
End Sub

I keep getting an error.
Can anyone help?
0
Comment
Question by:Stephen Byrom
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
8 Comments
 
LVL 65

Expert Comment

by:rockiroads
ID: 34226192
when you close the report via docmd.close you have to specify the type and report name (like your timer)
eg

docmd.close acreport, rpt.name
0
 
LVL 65

Accepted Solution

by:
rockiroads earned 250 total points
ID: 34226203
try this alternative


Private Sub Form_Timer()
    CloseAllReports
    DoCmd.Close acForm, "frmRprtTimer"
End Sub

Private Sub CloseAllReports()

    Dim i As Integer
    Dim sName As String
    
    For i = 0 To CurrentDb.Containers("Reports").Documents.count - 1
        sName = CurrentDb.Containers("Reports").Documents(i).Name
        Debug.Print "Closing", sName
        DoCmd.Close acReport, sName
    Next i
    
End Sub

Open in new window

0
 
LVL 1

Author Comment

by:Stephen Byrom
ID: 34226206
Tried that rocki.
I get
"Operation is not supported for this type of object"
0
U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

 
LVL 1

Author Closing Comment

by:Stephen Byrom
ID: 34226218
Your alternative code worked great.
Thanx for the help.
Much appreciated
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 34226227
no worries :)
0
 
LVL 1

Author Comment

by:Stephen Byrom
ID: 34226253
Getting answers and code from here has taught me a lot, and is much appreciated.
I have managed to build a decent Stock database with yours and other's help.
Is there a book or some other refernece that you would recommend that I could learn more about coding in VBA?
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 34226318
I don't know of any books as my vba knowledge is all self taught. I did find one useful site for noobs though that you may find useful
http://functionx.com/vbaccess/index.htm
0
 
LVL 1

Author Comment

by:Stephen Byrom
ID: 34229359
Thanx Rocki.
Very usefull site.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question