【问题标题】:Show Report Pages Count Only On Print仅在打印时显示报告页数
【发布时间】:2010-09-27 04:59:06
【问题描述】:

在 MS Access 报告中,可以使用带有以下内容的文本框显示页数:

= "Page " & Page & " of " & Pages & " Pages"

但是,这对于大型报表来说是有问题的,因为在所有页面都被格式化之前,Access 无法在预览中打开报表的第一页(因此它知道总页数)。

理想情况下,在预览中我只显示“第 123 页”,但当实际打印报告时,它会被“第 123 页,共 456 页”替换。

这可能是一厢情愿的想法,但有人做过这样的事情吗?

【问题讨论】:

    标签: ms-access report


    【解决方案1】:

    Access 2007(您没有指明您的版本),通过 vba 可以使用 CurrentView 属性,您可以更改页面文本框的控制源:

    Private Sub Report_Open(Cancel As Integer)
    
     Select Case Me.CurrentView
          Case acCurViewDesign
    
          Case acCurViewPreview
              ' Page # Only
              Pages_TextBox.ControlSource = "Page" & Me.Page
    
          Case acCurViewReportBrowse
    
              ' Page # of #
              Pages_TextBox.ControlSource = "Page" & Me.Page & " of " & Me.Pages
          Case acCurViewLayout
                   End Select
    End Sub
    

    【讨论】:

    • 好建议。这些状态有命名常量,我倾向于使用它们而不是文字值,因为它们省去了添加 cmets 来解释每个值所指的内容。
    • 谢谢杰夫。这在我将其更改为格式时有效: page_number.ControlSource = "= 'Page ' & [Page]" 不幸的是,如果用户预览报告,然后选择他们经常这样做的打印,则它不起作用。你也知道克服这个问题的技巧吗?
    • 您可能必须在 PageHeaderSection_Format 中执行此操作。不理想,但打印时会触发。不好的是它为每个页面运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多