设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2035|回复: 2
打印 上一主题 下一主题

[报表] [求助]如何在报表中设定记录数?

[复制链接]
跳转到指定楼层
1#
发表于 2004-7-21 18:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[求助]如何在报表中设定记录数?比如每页固定记录为7条记录,超过则换页.请问如何设定.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2004-7-21 19:19:00 | 只看该作者
主题:【Microsoft KB(译文)】如何控制每页打印的记录数?发贴时间:2002/06/21 11:40pm ++++-------------------------------------------++++

++++ Ms Access Microsoft KB 汉化系列 敬请指正 ++++

++++-------------------------------------------++++ ACC: 如何控制每页打印的记录数

ID: Q119075 --------------------------------------------------------------------------------

在本文中的信息适用于: Microsoft Access 版本1.0,1.1,2.0,7.0,97

-------------------------------------------------------------------------------- 概要

适中: 要求基本的宏,编码,和联合操作性能技巧。 本文描述一种使你能控制报表每页打印记录数的方法。 更多信息

你能通过设置分页符的可见性属性来控制报表每页打印的记录数。 如下例子显示如何在报表的每页打印三个记录: 打开示例数据库 Northwind.mdb (或者 NWIND.MDB 在版本1.x或2.0里 )。 按下面的方法建立一新的宏,而然后保存宏为 Detail Page Break:    宏操作

   -------------------------------------------------------

   Setvalue

     项目: [ PageBreak].Visible

     表达式: IIf([TheCounter] Mod 3 = 0,"True", "False") 按照这些步骤建立一份基于 Suppliers 表的名为 Test1 的报表: 在数据库窗口中,单击报表标签,然后单击新建。 选择 Suppliers 表并单击 OK。 注意: 在版本1.x和2.0中,选择 Suppliers 表,然后单击空白报表。 把如下文本框添加到报表的主体:      报表: Test1

     --------------------------

     标题: TestReport

     控件来源: Suppliers      文本框:

      名称: Address

      控件来源: Address

     文本框:

      名称: City

      控件来源: City

     文本框:

      名称: Region

      控件来源: Region 注意: 在 Microsoft Access 版本 1.x 中,名称属性被称为控件名称属性。 把一个如下属性的文本框添加到主体。 将文本框放置在 Address 控件的正上方。 此控件充当一个报表记录数的计数器:    文本框

     名称: TheCounter

     控件来源: =1

     可见性: 否

     运行总和: 全部之上

把主体的格式化属性设置为宏 Detail Page Break。 在主体左下角 Address 控件的下面添加一分页控件。 设置分页控件的名称属性为 PageBreak。 预览报表。 报表的第一页应该包含如下三个记录:     Address      City      Region

    ----------------------------------------

    49 Gilbert St.  London

    P.O.Box 78934   New Orleans   LA

    707 Oxford Rd.  Ann Arbor    MI 如果最后一个记录丢失或者仅仅部分显示,表明分页控件在报表的主体中不够下方。 你可以通过把本例子 Detail Page Break 宏中的表达式 "mod 3" 改成 "mod x" 来在每页打印任何记录数,x 是你想要每页打印的记录数。 例如,如果你想要每页打印11个记录,将表达改作:

  IIf([TheCounter] mod 11 = 0, "True", "False") 参考

对于更多关于关于 Setvalue 的信息,使用 Microsoft Access 97 帮助索引搜索“Setvalue 操作”。 对于更多关于关于可见性属性的信息,使用 Microsoft Access 97 帮助索引搜索“可见性属性”。 对于更多关于分页控件的信息,使用 Microsoft Access 97 帮助索引搜索使用微软搜索“page breaks”和“分页控件”。 附加的查询词汇: page break 关键词: kbusage RptsLyt

版本: 1.0 1.1 2.0 7.0 97

平台: WINDOWS

问题类型: kbhowto

最后修正: 1999年4月6日

? 2000年微软公司。 版权所有。 使用条款。

点击这里给我发消息

3#
发表于 2004-7-21 19:21:00 | 只看该作者
以下是ACC911上的:http://access911.net/index.asp?board=4&mode=3&recordid=73FAB01E15DC问题:





每页打印一定行数后自动分页


方法一:





加一个分页符,在报表的代码界面里面写入以下代码:


Option Compare Database


Dim row As Long


Dim RowsInPage As Integer


Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)


    RowsInPage = 7


    row = row + 1


    If row >= RowsInPage Then


        Me.PageBreak18.Visible = True


        row = -1


    Else


        Me.PageBreak18.Visible = False


    End If


End Sub





方法二:





在报表的代码界面里面写入以下代码:


Option Compare Database


Dim row As Long


Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)


    row = row + 1


    If Me.Section(acDetail).ForceNewPage = 1 Then


        Me.Section(acDetail).ForceNewPage = 0


    Else


        If row Mod 7 = 0 Then


            Me.Section(acDetail).ForceNewPage = 1


            row = 0


        End If


    End If


End Sub





例子下载:


http://access911.net/down/ForceNewPage.rar


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 01:25 , Processed in 0.101299 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表