[AccessD] Change Reports Caption From Code

A.D.Tejpal adtp at touchtelindia.net
Thu Jul 14 12:05:28 CDT 2005


Stuart,

    Sub-routine named P_QueryFriendlyCaption() given below, should be able to get the desired effect. Essentially, it involves making a temporary copy of the query, under the specified descriptive name. 

    Whenever, a fresh query needs to be displayed, previously existing temp query (if any) gets deleted, so that at any given stage, there is no more than one temp query. Finally when the form is closed, any temp query still around, gets deleted, so that the status of queries collection remains undisturbed.

    Complete code for form's module is given below. Query to be displayed is selected via combo box named CboQuery. Desired friendly caption is entered in text box named TxtCaption. On clicking the command button (CmdShow), the query gets displayed with appropriate caption (If TxtCaption is left blank, the query gets displayed under its original name).

Best wishes,
A.D.Tejpal
--------------

Form's Code Module
===================================
' General Declarations section
Private TempQuery As String   ' Global variable
------------------------------------------------------------

Private Sub P_QueryFriendlyCaption(ByVal RealName _
                        As String, ByVal DisplayName As String)
    On Error Resume Next
    
    ' Delete TempQuery if any and also query named
    ' DisplayName if any
    If Len(TempQuery) > 0 And _
                        TempQuery <> RealName Then
        DoCmd.DeleteObject acQuery, TempQuery
        ' Reset the value for global variable
        ' (Useful in clearing temp query in form's Close event)
        TempQuery = ""
    End If
    If DisplayName <> RealName Then
        DoCmd.DeleteObject acQuery, DisplayName
    End If
    
    ' Copy query named RealName as a temp query
    ' named DisplayName
    If DisplayName <> RealName Then
        ' Set global variable - for deletion of temp query
        ' in next round
        TempQuery = DisplayName
        DoCmd.CopyObject , DisplayName, _
                                            acQuery, RealName
    End If
    
    ' Display the newly copied query
    DoCmd.OpenQuery DisplayName
    DoCmd.Maximize
    
    On Error GoTo 0
End Sub

Private Sub CmdShow_Click()
    If Len(CboQuery) > 0 Then
        P_QueryFriendlyCaption CboQuery, _
                            Nz(TxtCaption, CboQuery)
    End If
End Sub

Private Sub Form_Activate()
    DoCmd.Restore
End Sub

Private Sub Form_Close()
    ' Delete temp query if any
    If Len(TempQuery) > 0 Then
        DoCmd.DeleteObject acQuery, TempQuery
    End If
End Sub
===================================

  ----- Original Message ----- 
  From: Stuart McLachlan 
  To: Access Developers discussion and problem solving 
  Sent: Wednesday, July 13, 2005 04:36
  Subject: Re: [AccessD] Change Reports Caption From Code


  On 12 Jul 2005 at 17:52, Josh McFarlane wrote:

  > 
  > DoCmd.OpenReport ReportTest, acPreview,,,,"Report Caption"
  > 
  > Then in the on open handler:
  > Caption = OpenArgs
  > 
  > or something similar to fit your needs.
  > -- 

  In a similar vein, has any looked into changing the Caption in a query datasheet or print preview.   I often shortcut in simple applications and display a query to the user rather than going to the effort of producing a report based on the query. It would be nice to customise the header on a printout of the query.

  -- 
  Stuart



More information about the AccessD mailing list