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