ACC: How to Maintain a Print Log for ReportsID: Q154894
|
Moderate: Requires basic macro, coding, and interoperability skills.
This article describes how to add a record to a table each time that you
print a report. This technique is useful for maintaining a print log that
tracks the print history of a report.
The following example uses the Print event of a report to add a record to a
table. The record contains the report's name and print date. The example uses
the report's Activate and Deactivate events to set a global variable that is
evaluated during the Print event. This prevents Print Preview from adding a new
record to the history table.
NOTE: In Microsoft Access 7.0 and 97, there is one sequence of events
that will create a new record in the history table when you Print Preview
the report. If you open the report in Design view to view or change any of
its code and then switch to Print Preview, the Activate event does not
occur, and the global variable is not set. To work around this problem,
after viewing or changing the report's code, close the report before you
open it in Print Preview.
CAUTION: Following the steps in this example will modify the sample
database Northwind.mdb (or NWIND.MDB in version 2.0 or earlier). You may
want to back up the Northwind.mdb (or NWIND.MDB) file and perform these
steps on a copy of the database.
Table: tblPrintedReports
--------------------------------------------------
Field Name: ID
DataType: AutoNumber (or Counter in version 2.0)
Indexed: Yes (No Duplicates)
Field Name: ReportName
DataType: Text
FieldSize: 75
Field Name: PrintDate
DataType: Date/Time
Format: General Date
Table Properties: tblPrintedReports
-----------------------------------
PrimaryKey: ID
Option Explicit
Global Flag
Private Sub Report_Activate()
Flag = 0
End Sub
Private Sub Report_Deactivate()
Flag = -1
End Sub
Sub ReportHeader3_Print (Cancel As Integer, PrintCount As Integer)
Dim dbs As Database, rst As Recordset
Set dbs = CurrentDB()
Set rst = dbs.OpenRecordset("tblPrintedReports")
Flag = Flag + 1
' If the current value of Flag = 1, then a hard copy of the
' report is printing, so add a new record to the history table.
If Flag = 1 Then
rst.AddNew
rst!ReportName = "rptCustomers"
rst!PrintDate = Now
rst.Update
Flag = 0
End If
End Sub
ID ReportName PrintDate
--------------------------------------
1 rptCustomers 8/13/96 3:25:11 PM
For more information about Activate and Deactivate events, search the Help
Index for "Activate," or ask the Microsoft Access 97 Office Assistant.
For more information about Print events, search the Help Index for "Print
Event," or ask the Microsoft Access 97 Office Assistant.
Additional query words: evaluate diary
Keywords : RptEvent
Version : 2.0 7.0 97
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: April 23, 1999