Office中国论坛/Access中国论坛

标题: 请大家版主所有的在线朋友帮个忙,页面设置模块 [打印本页]

作者: whaojz    时间: 2009-1-11 11:55
标题: 请大家版主所有的在线朋友帮个忙,页面设置模块
Dim up, dn, le, ri, si, liAs Single , co As string'定义边距及页面函数
Sub ymszmk(strName As String) '页面设置模块
On Error GoTo Err_ymszmk
If Nz(DCount("*", "REPORTLIP", "REPORT='" & strName & "'")) = 0 Then
MsgBox "没有此报表的页面设置,请设置", , "提示"
Exit Sub
End If
up = DLookup("REUP", "REPORTLIP", "REPORT='" & strName & "'")
dn = DLookup("REDOWN", "REPORTLIP", "REPORT='" & strName & "'")
le = DLookup("RELEFT", "REPORTLIP", "REPORT='" & strName & "'")
ri = DLookup("RERIGHT", "REPORTLIP", "REPORT='" & strName & "'")
li = DLookup("RECOL", "REPORTLIP", "REPORT='" & strName & "'")
si = DLookup("RESIZE", "REPORTLIP", "REPORT='" & strName & "'")
co = IIf(DLookup("RECOURES", "REPORTLIP", "REPORT='" & strName & "'") Like "横向", acPRORLandscape, acPRORPortrait)Dim prt As Printer
    Set prt = Application.Printers(0)
prt.TopMargin = up * 56.7     '上
prt.BottomMargin = dn * 56.7  '下
prt.LeftMargin = le * 56.7    '左
prt.RightMargin = ri * 56.7   '右
prt.ItemsAcross = li          '列prt.PaperSize = si            '大小
prt.Orientation = co
DoCmd.OpenReport strName, acPreview
Reports(strName).Printer = prt
Exit_Err_ymszmk:    Exit Sub
Err_ymszmk:    If Err = 5 Then   
MsgBox "没有打印机,请先安装打印机!", , "提示"   
Exit Sub  
  End If   
MsgBox Err.Description  
  Resume Exit_Err_ymszmk
End Sub


请教,如上红色在执行中,提示拼写错或表没打开或没找到,
我想将如上设置过的是预览改为直接打印,应该怎么办

请大家帮个忙


新添加附件,请大家帮忙


大家帮个助,帮研究研究,此代码只有预览时生效,怎样才能直接打印呀,



[ 本帖最后由 whaojz 于 2009-1-12 17:11 编辑 ]
作者: Henry D. Sy    时间: 2009-1-11 13:39
strName应该是您的报表名字,
你要给strName赋值
作者: whaojz    时间: 2009-1-11 21:28
这是个函数,在调用时就给STRNAME 赋值了
作者: whaojz    时间: 2009-1-11 21:30
将acPreview改为,打印而不是预览 就提示提示拼写错或表没打开或没找到,
原函数不动不提示
作者: whaojz    时间: 2009-1-11 21:30
请大家帮忙看看
作者: Henry D. Sy    时间: 2009-1-11 22:01
你是不是改为
acnormal
作者: whaojz    时间: 2009-1-11 22:16
是呀,改完不行呀
作者: whaojz    时间: 2009-1-11 22:17
对不起刚刚在看代码没听见声音,
作者: Henry D. Sy    时间: 2009-1-11 22:17
你还是传例子吧
作者: whaojz    时间: 2009-1-11 22:18
改完就提示,那个,不改就能用,但我想做成直接打印的,不用预览,我在程序中把ACCESS主界面关了.
作者: whaojz    时间: 2009-1-11 22:21
对不起版主,我在网吧,家的网今天坏了,网吧没用OFFICE
你能帮说说这二条的意思吗?
DoCmd.OpenReport strName, acPreview                  是对当前报表预览  对吧,可直接改成acnormal吧
Reports(strName).Printer = prt       这条,如果不行能不能改成其他的写法呀
作者: whaojz    时间: 2009-1-11 22:23
改为acnormal后,
Reports(strName).Printer = prt       本条就提示出 拼写错或表没找到或没打开,但先期赋值一定是对的,不然预览也不能成呀,
有没有别的好的方法改写一下,回避这个问题呀
作者: Henry D. Sy    时间: 2009-1-11 22:25
strName
从您的代码中,并没有看到给strName赋值的语句。
作者: whaojz    时间: 2009-1-11 22:29
Sub ymszmk(strName As String)
.....
end sub

我在使用时直接写成的
ymszmk ( " 报表1 " )
作者: whaojz    时间: 2009-1-11 22:39
版主?
作者: whaojz    时间: 2009-1-11 22:47
版主 在帮看看成吗,或给点见意,我应该向那个方向努力
作者: Henry D. Sy    时间: 2009-1-11 22:50
原帖由 Henry D. Sy 于 2009-1-11 22:17 发表
你还是传例子吧

作者: whaojz    时间: 2009-1-11 22:57
那我得明天传明天上午您在线吗?
作者: Henry D. Sy    时间: 2009-1-11 22:59
看不到你所谓很长很长的数据
作者: whaojz    时间: 2009-1-11 23:03
:L
什么很长很长的数据呀,
作者: whaojz    时间: 2009-1-12 10:03
请大家版主所有的在线朋友帮个忙吧
作者: Henry D. Sy    时间: 2009-1-12 10:25
晕,会错贴了,思想开小差。
作者: whaojz    时间: 2009-1-12 10:51
6D
“晕,会错贴了,思想开小差。”
我没懂能下吗,能帮改改吗?
作者: Henry D. Sy    时间: 2009-1-12 11:08

Reports(strName).Printer = prt
去掉
你已经将prt设置为默认的打印机了。
作者: whaojz    时间: 2009-1-12 12:45
去除
Reports(strName).Printer = prt

后,打印还是原来的设置,表中设置的值没有生较
作者: whaojz    时间: 2009-1-12 23:56
有人可以帮帮我吗




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