Office中国论坛/Access中国论坛

标题: [求助]怎样控制打印纸张 [打印本页]

作者: lanchong    时间: 2003-8-19 06:15
标题: [求助]怎样控制打印纸张
access报表的纸张以及页边距该如何控制?我打报表时经常得修正长张的大小以及边界以复合布置好的报表,请大家给于帮助,多谢了.
作者: guoya    时间: 2003-8-19 15:28
可以通过设置printer属性进行,建立一个表[页面],将参数写入其中,然后在报表中调用该函数
Public Sub PrintMargin(r As Report)
Dim intTop As Integer '上边距
Dim intLeft As Integer '左边距
Dim intBottom As Integer '下边距
Dim intRight As Integer '右边距
Dim strPrtname As String '报表名称
Dim intpapersize As Integer '纸张大小
Dim intorientation As Integer '打印方向
strPrtname = r.Name
intTop = DLookup("[RPTTOP]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intBottom = DLookup("[RPTBOT]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intLeft = DLookup("[RPTLEFT]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intRight = DLookup("[RPTRIGHT]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intpapersize = DLookup("[papersize]", "页面", "[RPTNAME]='" & strPrtname & "'")
intorientation = DLookup("[Orientation]", "页面", "[RPTNAME]='" & strPrtname & "'")
r.Printer.PaperSize = intpapersize
r.Printer.Orientation = intorientation
r.Printer.TopMargin = intTop
r.Printer.BottomMargin = intBottom
r.Printer.LeftMargin = intLeft
r.Printer.RightMargin = intRight
End Sub
注意:必须位access xp
作者: coolman2    时间: 2003-8-29 19:33
2000呢
作者: coolman2    时间: 2003-8-29 19:35
我想纸张设为a3如何做
作者: yangxiang    时间: 2007-6-11 23:52
以下是引用guoya在2003-8-19 7:28:00的发言:
可以通过设置printer属性进行,建立一个表[页面],将参数写入其中,然后在报表中调用该函数
Public Sub PrintMargin(r As Report)
Dim intTop As Integer '上边距
Dim intLeft As Integer '左边距
Dim intBottom As Integer '下边距
Dim intRight As Integer '右边距
Dim strPrtname As String '报表名称
Dim intpapersize As Integer '纸张大小
Dim intorientation As Integer '打印方向
strPrtname = r.Name
intTop = DLookup("[RPTTOP]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intBottom = DLookup("[RPTBOT]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intLeft = DLookup("[RPTLEFT]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intRight = DLookup("[RPTRIGHT]", "页面", "[RPTNAME]='" & strPrtname & "'") * 567
intpapersize = DLookup("[papersize]", "页面", "[RPTNAME]='" & strPrtname & "'")
intorientation = DLookup("[Orientation]", "页面", "[RPTNAME]='" & strPrtname & "'")
r.Printer.PaperSize = intpapersize
r.Printer.Orientation = intorientation
r.Printer.TopMargin = intTop
r.Printer.BottomMargin = intBottom
r.Printer.LeftMargin = intLeft
r.Printer.RightMargin = intRight
End Sub
注意:必须位access xp

为何要在报表预览的“页面设置”调用后要按"确定"才能改变?
作者: poly    时间: 2007-6-12 09:31
为何不在设计报表时就把纸张选好呢?
作者: yangxiang    时间: 2007-6-12 21:02
选好了,生成MDE文件但拿到别人的电脑上用时,又会改变的.
作者: 一点通    时间: 2007-6-12 21:28
在生成MDE文件前,将数据库的选项设置一下就可以

工具--选项--常规--跟踪名称自动更正信息,不打勾就OK
作者: yangxiang    时间: 2007-6-14 21:57
以下是引用一点通在2007-6-12 13:28:00的发言:


在生成MDE文件前,将数据库的选项设置一下就可以

工具--选项--常规--跟踪名称自动更正信息,不打勾就OK

一点通你好,你说的我试过了,不能实现纸张规格不变,如果是系统自带的纸张规格按你的应该可以实现,但我用的是自定义的纸张规格,MDE文件拿到别人的电脑就改变了纸张规格。我发觉在本机winxp自定义纸张规格后,与别人的电脑自定义纸张规格的顺序不同,如本机是:130,但别人的或者是:131。有什么方法解决这个问题,请指教!多谢!
作者: andymark    时间: 2007-6-15 01:39
MDB可以把自定义纸张保存在表中调用,不会因环境的改变而变.转成MDE,有些属性不一定支持,具体没测试过

另一种方法用VSPRINT控件,但比较麻烦。要求不大的用一点通管理员的方法比较好




作者: yangxiang    时间: 2007-6-15 17:37
以下是引用andymark在2007-6-14 17:39:00的发言:


MDB可以把自定义纸张保存在表中调用,不会因环境的改变而变.转成MDE,有些属性不一定支持,具体没测试过

另一种方法用VSPRINT控件,但比较麻烦。要求不大的用一点通管理员的方法比较好

版主你好:因我要发布MDE文件到其它电脑上用,但纸张规格会改变,要用MDB文件在其它电脑上,再改变到自定义纸张规格,再生MDE文件才能解决,有什么方法解决这个问题,可否提供一个解决的例子,多谢!
作者: yangxiang    时间: 2007-6-18 21:14
版主们请帮忙指教一下!多谢!!
作者: andymark    时间: 2007-6-19 01:47
以下是引用一点通在2007-6-12 13:28:00的发言:


在生成MDE文件前,将数据库的选项设置一下就可以

工具--选项--常规--跟踪名称自动更正信息,不打勾就OK

     
作者: poly    时间: 2007-6-19 11:05
当在另一电脑上使用,纸张有问题时会出现提示,如A3纸,确定后设置一次就行了,再打开就不会出现这种提示
作者: ylqtz    时间: 2009-2-20 10:31
ding




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