MDE或ACCDE在Access报表保存纸张大小及页面边距
- 2017-08-22 09:59:00
- andymark 原创
- 7185
当Access生成MDE或ACCDE格式之后,在Access报表保存纸张大小及页面边距一直是Access数据库用户心中的痛。
下面提供版主们的一些解决报表如何保存打印边距的方法
andymark:
应该可以,需要用集合的方式打开报表才能改变纸张大小
Public clnClient As New Collection Public Sub GetPage(ReportName As String) '读取页边距 Dim Rs As New ADODB.Recordset Dim Conn As New ADODB.Connection Set Conn = CurrentProject.Connection Dim SQL As String Dim Rpt As Report SQL = "SELECT * FROM Dybbcs where bbmc='" & ReportName & "'" Set Rpt = New Report_Test Rs.Open SQL, Conn, adOpenDynamic, adLockOptimistic With Rpt.Printer .TopMargin = Rs.Fields("bbsbj") .BottomMargin = Rs.Fields("bbxbj") .LeftMargin = Rs.Fields("bbzbj") .RightMargin = Rs.Fields("bbybj") .papersize = acPRPSA4 End With clnClient.Add Item:=Rpt, Key:=CStr(Rpt.Hwnd) Rpt.Visible = True Set Rs = Nothing Set Conn = Nothing End Sub
打开报表时
GetPage "test"
我这里测试OK
还可参考这里的Access源码示例: 以前做的例子 , 能动态设置的:MDE保存调用页边距的例子
需要在窗体中执行和调用 在"test" 报表中设定的纸张为A4, 纵向 把报表中"test"另存为副本 在Open事件中加载同样的代码 通过窗体用集合打开可以改变纸张的方向和大小; 而直接打开test副本虽然在页面设置栏里显示的是横向, 但报表却是纵向的,直到按确定才改变方向 大家用打印机测试一下效果, 我这果没打印机, 不知是不是真正改变了 |
文章分类
联系我们
联系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |