设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

1970-1-1 08:00| 发布者: Office 协助中心| 查看: 3538| 评论: 0

创建“打印机设置”窗体
在“设计”视图中创建一个窗体,并如上图所示添加下列控件。
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

最新评论

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

GMT+8, 2025-4-4 05:15 , Processed in 0.075804 second(s), 17 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部