设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: mrd_wxqs
打印 上一主题 下一主题

[报表] 报表页边距设置如何捕获错误代码?

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-5 12:31:32 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
在代码中设置报表的页边距,当设置值超出范围时,不能捕获错误代码,如下提示,请问要如何才能捕获这样的错误代码呢?



我写的代码如下:
On Error GoTo Err_View
    If CurrentProject.AllReports(strReport).IsLoaded Then
        Set ActPrinter = Application.Printers(mm)                               ''为选定的打印机选取打印机对象。
        With ActPrinter                                                                       ''读取用户指定的设置。
            .PaperSize = Me.Cmb纸张
            .TopMargin = Me.Text上 * 56.7
            .BottomMargin = Me.Text下 * 56.7
            .LeftMargin = Me.Text左 * 56.7
            .RightMargin = Me.Text右 * 56.7
            .Orientation = Me.Frm方向
            .DataOnly = Me.Chk数据
        End With
        
        'DoCmd.OpenReport strReport, acViewPreview                   ''以预览模式打开报表。
        ActReport.Printer = ActPrinter                                             ''将报表的打印机设置为已修改的打印机对象。
    End If
    Exit Sub
   
Err_View:
    MsgBox Err.Description, vbExclamation, CurrentDb.Properties("AppTitle")

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2010-12-5 21:12:50 | 显示全部楼层
大家都在干嘛呢,都过来这里瞧瞧啊,说点什么都行!
3#
 楼主| 发表于 2010-12-6 15:13:00 | 显示全部楼层
本帖最后由 mrd_wxqs 于 2010-12-8 19:05 编辑
tmtony 发表于 2010-12-6 09:12
试试返回err.number,可否取到, 或者可否把这个设置页面的窗体上传上来, 我们来帮你试试


回tmtony,谢谢您的关注!

err.number也不能得到错误代码,根本不能捕获错误。

我将窗体代码附上如下:

当页边距的设置值达到或超出纸张大小的值时,就出现如下错误,Access崩溃退出:


下面这个错误点击“取消”也会崩溃退出:


是否报表的错误不能用on error来捕获呢?如果不能捕获错误,那么所有的代码都变得没有意义了,呵呵!

谢谢!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
 楼主| 发表于 2010-12-6 18:51:39 | 显示全部楼层
谢谢tmtony的解答。
这些代码我在两台电脑上试了,都会出错。刚好周六重装了一台电脑,今天上午试了同样也会出错,很是纳闷!比如使用hp-lj1320激光打印机的A5纸(148*210),当上下边距各设置为100时,就崩溃了。
我再多试,主要是想解决在MDE下调整报表页边距的问题!
5#
 楼主| 发表于 2010-12-6 21:15:40 | 显示全部楼层
tmtony 发表于 2010-12-6 21:02
奇怪了,我调到0.01 都可以哦,只不过保存后再打开,变成了打印机允许的最小值

哦,是吗,是将页边距往大的方向设置哦!不是往小的方向设置。比如纸高为210,当上下页边距都设置为100时,就会出错崩溃的。

我又重装了一遍电脑,依然如故。

不是用Access自带的“页面设置”来设置,而是用我的“Fs_页面设置”窗体来设置,先预览报表,然后从工具栏的“页面设置”来调用进行设置。
6#
 楼主| 发表于 2010-12-7 08:36:45 | 显示全部楼层
呵呵,我经过多次试验都以为这个没有办法了,而且这个实例在坛子里还算有些参考价值,就改成收费的了。
7#
 楼主| 发表于 2010-12-7 16:51:42 | 显示全部楼层
经过两位大师的提醒,我发觉左右边距比较好检测,用打印机的itemsizewidth、纸张宽度、左右页边距相比较可以得出结果;但上下页边距就复杂得多,itemsizeheight只是报表主体节的高度,若报表还有页面的页眉页脚及报表的页眉页脚,甚至还有其他的节和组,这些部分的高度都得考虑,并且itemsizeheight的值有可能比纸张高度大,也可能很小,可能上下边距设置值的和已大于纸张高度但并不大于itemsizeheight,就不能提示错误了。
如tmtony所说,检测上下边距不大于某值(如15),但如果报表打印的结果是产品标签(如60*50),这时若上下边距各允许设置为15又显得太大,用纸张高度的5%作为允许值也许可行,但也不够合理,请大师们再出出招,这个例子有不小的实用价值,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-22 20:25 , Processed in 0.101748 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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