MDE或ACCDE在Access報表保存紙張大小及頁面邊距

2017-08-22 09:59:00
andymark
原創
2207

當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副本雖然在頁面設置欄里顯示的是橫向, 但報表卻是縱向的,直到按確定才改變方向

大家用打印機測試一下效果, 我這果沒打印機, 不知是不是真正改變了

mde保存頁邊距XP0803174.rar


分享
北京十一选五基本走势