【问题标题】:Access - Limit records per group in a report so they don't spill over to the next page访问 - 限制报告中每组的记录,以免它们溢出到下一页
【发布时间】:2013-10-12 01:13:10
【问题描述】:

我的报告有点问题。我需要限制为每页提取的记录数。我尝试了很多方法,但无法弄清楚。

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

下面是一个例子:

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

【问题讨论】:

  • 您是否尝试过在 SQL 语句中使用 TOP 关键字?
  • 是的,这将整个查询限制为那么多结果。我需要对每个客户进行限制,而不是总体限制。

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


【解决方案1】:

一种可能的方法是在报告中添加一些 VBA 代码,以抑制 (Cancel) 在 n 个项目之后打印详细信息带。我刚刚在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2016-04-12
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多