会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 报表打印 > 正文

在 Access 2002 中更改报表的打印机设置

时间:2003-12-20 22:32 来源:Office 协助中心 作者:Office 协… 阅读:
创建“打印机设置”窗体
在“设计”视图中创建一个窗体,并如上图所示添加下列控件。
lbxSelectReport:显示报表列表的列表框
cmbPrinter:显示可用打印机列表的组合框
cmbPaperSize:显示纸张大小列表的组合框
opgOrientation:具有两个选项的选项组,用于显示方向选项
cmdPreview:以预览模式打开报表的命令按钮
cmdApplyChanges:将最新设置应用到当前报表的命令按钮
cmdPrint:使用在窗体中指定的设置打印选定报表的命令按钮
向窗体的 Open 事件中添加代码以初始化控件。
Open 事件子过程示例

Private Sub Form_Open(Cancel As Integer)
' 包含默认打印机索引的变量。
Dim strDefaultPrinter As String
' 包含打印机对象的变量。
Dim prt As Printer
' 在 AllReports 集合中遍历时
' 包含报表对象的变量。
Dim accObj As accessObject
' 填写打印机列表。
' 确保 RowSource 为空。
Me!cmbPrinter.RowSource = ""
Me!lbxSelectReport.RowSource = ""
' 遍历计算机上已安装的打印机,并将它们添加到组合框中。
For Each prt In Application.Printers
' 使用新的 AddItem 方法将打印机名称添加到组合框中。
Me!cmbPrinter.AddItem prt.DeviceName
Next
' 记忆默认打印机。
strDefaultPrinter = Application.Printer.DeviceName
' 将组合框设置为默认打印机。
Me!cmbPrinter = strDefaultPrinter
Me!cmbPaperSize = 1
' 填写报表列表。
For Each accObj In CurrentProject.AllReports
Me!lbxSelectReport.AddItem accObj.Name
Next
' 将列表框设置为第一个报表。
Me!lbxSelectReport.SetFocus
Me!lbxSelectReport.ListIndex = 0
End Sub
向“预览报表”命令按钮添加代码,以便以预览模式打开选定的报表。
“预览报表”命令按钮的 onClick 事件过程示例

Private Sub cmdPreview_Click()
' 包含要操纵的打印机对象的变量。
Dim prt As Printer
' 为选定的打印机选取打印机对象。
Set prt = Application.Printers(Me!cmbPrinter.Value)
' 读取用户指定的设置。
prt.PaperSize = Me!cmbPaperSize
prt.Orientation = Me!opgOrientation
' 以预览模式打开报表。
DoCmd.OpenReport Me!lbxSelectReport, acViewPreview
' 将报表的打印机设置为已修改的打印机对象。
Reports(Me!lbxSelectReport).Printer = prt
End Sub
向“应用更改”命令按钮添加代码,以将更改应用到以预览模式打开的报表。
“应用更改”命令按钮的 onClick 事件过程示例

Private Sub cmdApplyChanges_Click()
If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
With Reports(Me!lbxSelectReport).Printer
.PaperSize = Me!cmbPaperSize
.Orientation = Me!opgOrientation
End With
Else
MsgBox "请先预览报表。"
End If
End Sub
向“打印报表”命令按钮添加代码,以便基于用户指定的设置打印选定的报表。
“打印报表”命令按钮的 onClick 事件过程示例

Private Sub cmdPrint_Click()
' 检查报表是否已打开。
If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
' 打印报表(如果已打开)。
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
Else
' 使用自定义设置来设置应用程序打印机。
Application.Printer = Application.Printers(Me!cmbPrinter.Value)
Application.Printer.PaperSize = Me!cmbPaperSize
Application.Printer.Orientation = Me!opgOrientation
' 使用新的应用程序级别打印机设置来打开和打印报表。
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
' 将应用程序打印机重置为默认设置。
Set Application.Printer = Nothing
End If
End Sub

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: