访问 - 限制报告中每个组的记录,以便它们不会溢出到下一页

时间:2013-10-04 21:50:47

标签: vba ms-access access-vba ms-access-2007

我的报告存在轻微问题。我需要限制每页提取的记录数。我已经尝试了很多东西,但无法理解。

基本上,我有一份报告可以为我们的客户提供联系信息和付款历史记录。报告根据电话号码进行分组,并根据最近的付款日期进行排序。报告中的这些联系人将打印在3x5索引卡上。我遇到的问题是,有些人有多笔付款,而且它正在溢出到新卡上。

这是一个正在发生的事情的例子:

example

关于我如何限制它的任何想法,以便它只能提取足够的记录来填充3x5卡然后停止?我正在使用access 2007。

1 个答案:

答案 0 :(得分:2)

一种可能的方法可能是在报告中添加一些VBA代码,这些代码将在 n 项目之后禁止(Cancel)打印详细信息带。我刚刚在Access 2010报告中尝试了以下代码,它似乎有效,但只有在“打印预览”中查看报告时才有效。 (在“报告视图”中查看报告时,代码显然没有效果。)

Option Compare Database
Option Explicit

Dim mySeq As Long

Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As Integer)
    mySeq = 0
End Sub

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    If FormatCount = 1 Then
        mySeq = mySeq + 1
    End If
    Cancel = (mySeq > 3)  ' don't print more than 3 detail bands per group
End Sub