Office中国论坛/Access中国论坛

标题: 如何让报表自动满页并限定满页的行数? [打印本页]

作者: Ajoe    时间: 2004-4-7 07:22
标题: 如何让报表自动满页并限定满页的行数?
    我设计的一个报表,大约一页要17行左右,有时数据不足17行,我想让报表自动满17行,因为这样整个版面的表格看起来会协调一些,能实现吗?
    请帮我!谢谢!
作者: 土豆    时间: 2004-4-7 07:33
打开报表前在数据来源的表(假定叫表A)里插入一些空行

如果表A有数据约束,不能插入空行,或者认为插入空行会对数据造成影响
那么增加一个表B,让B的字段类型与A的完全一致,插入16条空白记录,然后用A和B做UNION合成一个结果集然报表显示,凑满一页

总的说觉得在这上面花费时间不划算
作者: Ajoe    时间: 2004-4-7 19:32
应该可以实现的,我都见过可以控制打印行数的实例,自动满页的实例我就没见过,不知哪位可以帮在下一个忙啊。
作者: Ajoe    时间: 2004-4-8 04:52
帮忙!
作者: Ajoe    时间: 2004-4-9 01:08
再一次请求帮忙!
作者: caibbs    时间: 2004-4-10 00:09
帮我吧

作者: petrelai    时间: 2004-4-10 00:31
标题: 这个行不行?
[attach]4173[/attach]
作者: Ajoe    时间: 2004-4-10 17:39
可是可以仿照,但代码太复杂了,我还看不太懂,我不知道哪些代码需要改,哪些不能改啊。

作者: 土豆    时间: 2004-4-10 18:06
标题: 看看这个,昨天刚做的
[attach]4179[/attach]

用的是填充空记录的方法
作者: caibbs    时间: 2004-4-10 18:56
多谢谢
作者: Ajoe    时间: 2004-4-10 20:00
我还是看不懂,帮我看看我这个应该怎么来做,我放了限制打印17行的代码。
帮我吧!谢谢!
[attach]4181[/attach]
作者: skylark    时间: 2004-4-11 00:45
标题: 土豆的方法
To Ajoe:
土豆的方法,不知是否满意?土豆的水平不低。
——————————————
Do Our Job Well   Try Anything Once
[attach]4191[/attach]
作者: 土豆    时间: 2004-4-11 00:57
给你解释一下程序

'打印按钮单击
Private Sub cmdPrint_Click()
Dim RcdCount, i
    '先清除空白记录
    CurrentDb.Execute "DELETE * FROM Bill WHERE PID=0"
    '取现有当前记录数
    RcdCount = objList.Form.Recordset.RecordCount
    '插入需要的空白记录(例如满页为50行,则插入(50-现有记录数)条空白记录)
    For i = 1 To (50 - RcdCount)
        CurrentDb.Execute "INSERT INTO Bill(PID) VALUES(0)"
    Next
    '打开报表
    DoCmd.OpenReport "rptBill", acViewPreview
    DoCmd.Maximize
End Sub
作者: Ajoe    时间: 2004-4-11 04:54
1、会出现删除警告窗口!这样不够完美。
2、RcdCount = objList.Form.Recordset.RecordCount,这句我的通不过。
作者: Ajoe    时间: 2004-4-11 06:33
解决了!
  1、把下拉菜单“工具”→“选项”,里面“编辑/查找”中的“操作查询”去掉√,目的是不出现查询操作的询问窗口。
  2、请看我的实例。已经解决了每页限制打印17行,不足17行的也会补足。原理是:用一个临时的数据表PrintTmp,利用名字叫MyInse的这个追加查询对临时表进行写操作,然后,把报表的数据源对准这个临时表就行了。
=========================
[attach]4194[/attach]
=========================
但是还有不明白的地方:

    RequeryName = "MyInse"                  '给变量赋值,是名字叫做"MyInse"的追加查询
    DoCmd.OpenQuery RequeryName             '打开查询

    Me.Requery                          '???
  Me.Recordset.MoveFirst       '???
    Me.Recordset.MoveLast        '???这些用来做什么的?为什么要这样用呢?

    RcdCount = Me.Recordset.RecordCount     '给变量赋值,是当前的数据记录数










[此贴子已经被作者于2004-4-10 22:36:19编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3