Access 报表 如何补充空白行

本文介绍了在Access中解决报表不满页时补充空白行的问题。先创建名为表21_报验空的表,设置字段并创建20个空数据行;再创建名为查询21_报验的查询,设置字段并创建3行数据;用该查询自动生成报表21_报验,最后在报表属性的打开事件中复制代码,实现每页20行,不足则补充。

Access 创建报表后 不满页如何补充空白行呢,我解决了这个问题。

  1. 创建表:命名:表21_报验空,字段设置:名称,数量;并创建20个空数据行

  1. 创建查询:命名:查询21_报验,字段设置:名称,数量;并创建3行数据

  1. 创建报表:命名:报表21_报验,报表使用 查询21_报验 自动生成报表。

  1. 其次,报表的属性中,在打开事件中复制下边的代码。

Option Compare Database
Option Explicit

Private Sub report_open(Cancel As Integer)
'创建一个空表,空表字段与查询字段完全一致,将空表中增加40条空数据,使用UNION功能,将查询的数据与空表部分数据组合,使组合后的数据行数是20行的整倍数,从而实现每页都是20行。
    Dim i_ROW As Integer, S_name As String, S_name_Null As String
    If Report.Name = "报表21_报验" Then
        i_ROW = 20
        S_name = "查询21_报验"
        S_name_Null = "表21_报验空"
        
        
        If DCount("*", S_name) Mod i_ROW <> 0 Then
            'Me.RecordSource = "Select * from 查询21-仪表-报验 UNION ALL select TOP " & (i_ROW - DCount("*", "查询21-仪表-报验") Mod i_ROW) & "* from 表21-仪表-报验-null"
            Me.RecordSource = "Select * from " & S_name & " UNION ALL select TOP " & (i_ROW - DCount("*", S_name) Mod i_ROW) & " * from " & S_name_Null
            
        Else
            Me.RecordSource = "Select * from " & S_name
        End If
    End If
End Sub

  1. 打开报表,报表自动生成,每页20行,不足的补充。

本想自动读取报表的纸张大小,但返回来值都是默认纸张的大小,所以用了<BR>Selest case 词句,但这样结果是纸张的类型不齐全。没有类型对应的纸张的在大小不能正确判断(此情况下,如果提供的参数不正确,报表结果将会变乱。此时只要调整一下参数。即得到正确的报表。)。如果有谁能解决此问题,请告知一声。 <P><P>以下为新的函数说明:<BR>==============================================================<BR>函数名:RepDetail_Format()<BR>调用报表必须使用控件:(文本框)<BR>txtRecord_NO 在主体节 可见 用于显示记录号,可选<BR>txtTotGrp 在主体节 不可见 =Count(*) 用于取得报表的总记录数,必须<BR>txtCurrentPage 在主体节 不可见 =[Page] 用于取得当前页数,必须<P>参数说明: RepName 报表名称 (当前报表可用 (Me), 其它报表可用:(Reports.报表名)引用),必须<BR>txtCurrentPage 报表主体节上的[txtCurrentPage]文本框控件 ,必须<BR>txtRecordNum 报表定义的私人变量 数据类型:Integer 用于记录数的递增,必须<BR>(注:在报表模块顶部声明 : Private txtRecordNum As Integer )<BR>txtTotGrp 报表主体节上的[txtTotGrp]文本框控件 ,必须<BR>IntPrintLen 报表打印的行数。<BR>-----数据类型:Integer (注:不可超过每页允许的最大记录数),可选,(默认:25 行)<BR>DouPageLine 报表主体记录部分打印长度。<BR>-----数据类型:Double (注:不可超过每页允许的最大记录数),可选,(默认:21 CM )<BR>FontSize 报表记录部分字号。<BR>-----数据类型:Integer (注:不可超过每页允许的最大记录数),可选,(默认:0 字号不变)<BR>txtRecord_NO 记录序号文本框名称。<BR>-----数据类型:String (注:不可超过每页允许的最大记录数),可选,(缺省为没有使用)<P><BR>使用方法:<BR>1,先定义一私人变量:Private txtRecordNum As Integer,必须<BR>2,报表主体节的格式化事件中调用(Detail_Format 事件)<BR><BR>调用方法:NextRecord=RepDetail_Format(RepName , txtCurrentPage.text , txtRecordNum , txtTotGrp.text , IntPrintLen)<BR>使用示例:NextRecord = RepDetail_Format(Me, [txtCurrentPage], txtRecordNum, [txtTotGrp], 20)<BR>本函数由 binuochao (许伟军) 完成。制作于2003-06-27 Email:binuochao@sina.com.cn QQ:10077241<P><BR>=============================================================  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菌王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值