Learn Microsoft Access Advanced Programming Techniques, Tips and Tricks.

Useful Report Functions

Common Functions that you can use in Report Header or Footer Sections, while designing Reports, are given below. Copy and Paste the VB Code into a Global Module of your database and save it.

Write the Functions in the form of a Formula in Text Boxes as shown in the Syntax.

Function to display formatted Page Numbers.

Function : PageNo()

Syntax : =PageNo([page],[pages])

Result : Page : 1 / XXX where XXX stands for maximum number of pages of the Report.

Note : [page],[pages] are MS-Access built-in Report Variables and must be used as shown.

Code:

Public Function PageNo(ByVal pg As Variant, _ByVal pgs As Variant) As String
'----------------------------------------------------------
'Output   : Page: 1/25
'         : Call from a Report Text Box control
'Author   : a.p.r. pillai
'Date     : 01/09/2007
'Remarks  : The Formatted Text takes up 15 character space
'----------------------------------------------------------
Dim strPg As String, k As Integer

On Error GoTo PageNo_Err

pg = Nz(pg, 0): pgs = Nz(pgs, 0)
strPg = Format(pg) & "/" & Format(pgs)
k = Len(strPg)

If k < 15 Then
   strPg = String(15 - k, "*") & strPg
End If

strPg = "Page: " & strPg

For k = 1 To Len(strPg)
  If Mid(strPg, k, 1) = "*" Then
    Mid(strPg, k, 1) = Chr(32)
Next

PageNo = strPg

PageNo_Exit:
Exit Function

PageNo_Err:
Msgbox Err.Description,, "PageNo()"
PageNo = "Page : "
Resume PageNo_Exit
End Function

Function to print Period with formatted Start-Date and End-Date on Report Header or Footer.

Function : Period()

Syntax : =Period([StartDate], [EndDate])

Result : Period: 15/09/2007 To 30/09/2007

Note: Format String in the Code may be modified for country specific date format.

Code:

Public Function Period(ByVal prdFrm As Date, _ByVal PrdTo As Date) As String
'-----------------------------------------------------------------
'Output   : Period: dd/mm/yyyy To dd/mm/yyyy
'         : Call from Report control to insert date
'Author   : a.p.r. pillai
'Date     : 01/09/2007
'Remarks  : Modify Format String for Country specific date format.
'-----------------------------------------------------------------

On Error GoTo Period_Err

Period = "Period: " & Format(prdFrm, "dd/mm/yyyy") & " To " & Format(PrdTo, "dd/mm/yyyy")

Period_Exit:
Exit Function

Period_Err:
MsgBox Err.Description,, "Period()"Resume Period_Exit
End Function

Function to print formatted System Date in Header or Footer of the Report.

 

Function : Dated()

 

Syntax: Dated()

 

Result : Dated: 15/09/2007

 

Code:

Public Function Dated() As String
'----------------------------------------------------------------
'Output  : Dated: 20/08/2007
'        : Call from Report Text Box control
'Author  : a.p.r. pillai    Date    : 01/09/2007
'Remarks  : Change Format String for Country specific Date Format
'----------------------------------------------------------------
On Error GoTo Dated_Err

Dated = "Date: " & Format(Date, "dd/mm/yyyy")

Dated_Exit:
Exit Function

Dated_Err:
MsgBox Err.Description,, "Dated()"
Resume Dated_Exit
End Function 

You can design the full Page Footer of a Report with Date and Page Number at one go with a single Function. Read my earlier Article: Reports . . . Page Border. Use the Function DrawPageFooter() Code & procedure explained there.

You can add frequently used Expressions or Routines as Public Functions into a Global Module of your Database and Run from where you need them (Forms, Reports, Query Expressions etc.) rather than repeating the code everywhere.

You can further enhance the use of all the common Functions that you have, by organizing them into a separate Database and link this as a Library File into your New Projects. In this case, if you have any common Form (like MS-Access Form Wizard) that you have designed then that also can be placed in the Library Database. When you call the Library Function from your Project, which uses the common Form, MS-Access first checks for the Form in the Library Database, if not found there then opens it from your current Project.

Follow the procedure explained in the earlier Post Command Button Animation for linking the Essential Library Files to your Project. Your Library Database's name may not appear in the installed library file's list. Browse to the location of the database, attach it to the library list and select it.

You can save this Library file into a compiled state by converting it into a .MDE File. Select Tools - - > Database Utilities - - > Make MDE File to convert and save the current database into .MDE Format. You cannot edit the code in the .MDE database. Preserve the .MDB file for future changes and compilation, if it becomes necessary.

When you install your Project don't forget to install your common Library Database also along with it and attach it to your Project in the new location. That rule goes for other built-in Library Files also in the new location. It is likely that the built-in Library File Versions are different on the new machine, from what you have used at design time. This can happen if other Visual Basic based Applications are already installed earlier in the target machine. Such items will show as MISSING in the selected Library Files' List and you must attach the available Version of the file on the installed location.

If your Project is shared by different Versions of MS-Office Applications, then it is a good idea to attach an older version of the built-in library file (if available) to the project.

Refer the earlier Post on Sharing an Older Version Database under the topic: Ms-Access Security.

Share:

3 comments:

  1. Tianshi Health and Acu Life Support CenterJuly 1, 2008 at 6:06 PM

    You are the Boss and you are the GURU. Thank you very very very and Many many so much.

    Because its your achievement.

    Thank you again

    Best Regards
    Shamim Uddin
    Chittagong, Bangladesh
    bd.joher@gmail.com

    ReplyDelete
  2. Great information! I’ve been looking for something like this for a while now. Thanks!

    ReplyDelete
  3. Amiable dispatch and this post helped me alot in my college assignement. Gratefulness you for your information.

    ReplyDelete

Comments are subject to moderation, before publishing.

Translate



PageRank
Subscribe in a reader
Your email address:

Delivered by FeedBurner

Search

Popular Posts

Search This Blog

Blog Archive

Powered by Blogger.

Follow by Email

Labels

Forms How Tos Functions MS-Access Security Reports msaccess forms Animations msaccess animation Utilities msaccess controls Access and Internet Class Module MS-Access Scurity MS-Access and Internet Queries msaccess reports Array External Links msaccess tips Accesstips Menus and Toolbars Objects Downloads MsaccessLinks Process Controls Property Art Work Event Collection Object Controls WithEvents msaccess How Tos Graph Charts VBA msaccessQuery Combo Boxes List Boxes Command Buttons Data Emails and Alerts Form Query Report Calculation Command Button Custom Wizards DOS Commands Data Type Dictionary Object ms-access functions msaccess functions msaccess graphs msaccess reporttricks Item Object Reference RaiseEvent msaccessprocess security advanced Access Security Add Custom Functions Field Type Fields Form Instances Key Macros Menus SubForm Top Values Variables msaccess email msaccess menus progressmeter Access2007 Auto-Number Copy Expression Join Methods Microsoft Numbering System Records Recordset Security Split Table Time Difference Utility Workgroup Wrapper Classes database ms-access msaccess wizards text tutorial vba code Access2003 Accounting Year Action Animation Attachment Binary Numbers Bookmarks Budgeting ChDir Color Palette Conditional Formatting Data Filtering Defining Pages Diagram Disk Dynamic Lookup Error Handler Excel Export External Filter Formatting Groups Hexadecimal Numbers Import Labels List Logo Macro Mail Merge Main Form Memo Monitoring Octal Numbers Operating System Paste Primary-Key Product Rank Reading Remove Rich Text Sequence SetFocus Summary Tab-Page Tables Union Query User Users Water-Mark Word automatically commands function hyperlinks iSeries Date iif msaccess msaccess alerts pdf files reference restore switch toolbar updating upload

Featured Post

WithEvents and Report Line Highlighting

Introduction This is really a re-run of an earlier Post: Highlighting Reports published during August, 2007.  The full Code was written on ...

Labels

Blog Archive

Recent Posts