Creating Watermark on MS-Access Reports
No matter what kind of database design you plan for your Company, reports (in text or Chart form) are the main output the external users expect from the application. The Charts can be with 2D design or can be in pretty 3D design with gradient colors which makes them more attractive to look at. In either case the information in them must be meaningful and must serve their purposes. It is like the difference between a song sung by the bathroom singer and by a professional one. The lyrics is same but the listener definitely prefer the second choice.
You can design a report in minutes. Or you can design the same report giving personal attention to each and every control on the report for their placement, control size, font size, highlighting, heading, footer, summary lines and so on. It may take several hours before you are satisfied with the idea of presenting the report to the boss, stand back and look for the sign of appreciation appearing on his face.
Talking of controls and enhancements whey can’t we place a Watermark (a Company Logo or Company Name) on the Report Background to give the report a touch of class? It will not take much to do that. If you have an Image of your Company Logo (in .bmp format) with a very light gray scale color (like the image given below) you can easily implement this idea on your Report.
- Open the Report in Design View.
- Display the Report’s Property Sheet (F4).
- Look for the Picture Property and click on the property to select it.
- Click on the Build button (. . . at the right end of the property) to browse for the Watermark image on the disk and select it.
- With the following three property settings of the Report you can display and print the watermark image in various ways:
- PictureAlignment = 2 (center)
- PictureTiling = False
- PictureSizeMode = 3 (zoom)
When you load the Watermark picture in the background, with the above property settings, the Report Print Preview looks like the image given below:
Print the Report on Printer or convert into MS-Access Snapshot format (.snp) or into PDF.
The above manual work made easier for any Report with the VBA Code given below:
Public Function ReportWaterMark() Dim rpt As Report, txtRpt As String Dim imgPath As String txtRprt = "" imgPath = "" Do While txtRpt = "" Or imgPath = "" If txtRpt = "" Then txtRpt = Nz(InputBox("Give Report Name:", "Report Water Mark"), "") End If If imgPath = "" Then imgPath = Nz(InputBox("Watermark Image PathName:", "Report Water Mark"), "") End If Loop DoCmd.OpenReport txtRpt, acViewDesign Set rpt = Reports(txtRpt) With rpt .Picture = imgPath .PictureAlignment = 2 .PictureTiling = False .PictureSizeMode = 3 End With DoCmd.Close acReport, txtRpt, acSaveYes Set rpt = Nothing DoCmd.OpenReport txtRpt, acViewPreview End Function
Copy and paste the above code into a Standard VBA Module and save the code. You can run this program from a Command Button Click Event Procedure like:
Private Sub cmdWMark_Click() ReportWaterMark End Sub
When you run the main program it will prompt for the Report Name and for the Watermark Image location with image name. You must note down these information somewhere before you attempt to run the program. You need to run this program only once for a report. The image stays as the backgroud picture on the report till you run the program again to change the image.
Try the following property settings to see how they appear on the Report Print Preview:
.PictureAlignment = 0 .PictureTiling = True .PictureSizeMode = 0
.PictureAlignment = 2 .PictureTiling = False .PictureSizeMode = 1