Автор: Dmitry Shakhov
Возможность изменять ориентацию, формат, принтер.
′Создайте отчет с именем "TestRep"
′Выполните следующий код в модуле Access:
Private Sub ReportSetup()
Dim prtFirst As Printer
Dim prtLoop As Printer
Dim s As String
Dim i As Long
′Подготавливаем список принтеров
For Each prtLoop In Application.Printers
With prtLoop
s = s & i & "-" & .DeviceName & "/" & "Driver name: " & .DriverName & " Port: " & .Port & VBA.vbCrLf
End With
i = i + 1
Next prtLoop
′Открываем отчет в режиме конструктора, в скрытом режиме
DoCmd.OpenReport "TestRep", acViewDesign, , , acHidden
′Предлагаем выбрать принтер из подготовленного выше списка
i = InputBox(s, "Введите номер принтера", 0)
′Настраиваем отчет на работу с выбранным принтером
Reports("TestRep").Printer = Application.Printers(i)
Set prtFirst = Reports("TestRep").Printer
′ Раскомментируйте свойства принтера, значения которых хотите изменить программно
With prtFirst
′ .TopMargin = 1440
′ .BottomMargin = 1440
′ .LeftMargin = 1440
′ .RightMargin = 1440
′
′ .ColumnSpacing = 360
′ .RowSpacing = 360
′ .ColorMode = acPRCMColor
′ .DataOnly = False
′ .DefaultSize = False
′ .ItemSizeHeight = 2880
′ .ItemSizeWidth = 2880
′ .ItemLayout = acPRVerticalColumnLayout
′ .ItemsAcross = 6
′ .Copies = 1
′для примера меняем ориентацию отчета
If MsgBox("Выберите ориентацию, ДА - книжная , Нет - альбомная", vbYesNo) = vbYes Then
.Orientation = acPRORPortrait
Else
.Orientation = acPRORLandscape
End If
′ .Duplex = acPRDPVertical
′ .PaperBin = acPRBNAuto
′ .PaperSize = acPRPSA4 ′ acPRPSLetter
′ .PrintQuality = acPRPQDraft ′ acPRPQMedium
End With
′Закрываем отчет, сохраняя сделанные изменения
DoCmd.Close acReport, "TestRep", acSaveYes
′Открываем отчет в режиме просмотра
DoCmd.OpenReport "TestRep", acViewPreview
End Sub
|