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
DoCmd.OpenReport "TestRep", acViewPreview, , , acHidden
'Предлагаем выбрать принтер из подготовленного выше списка
'i = InputBox(s & " Введите номер принтера, если принтер один тогда номер - 0 -", "Введите номер принтера", 0)
i = 0 ' Принтер по умолчанию
'Настраиваем отчет на работу с выбранным принтером
Reports("TestRep").Printer = Application.Printers(i)
Set prtFirst = Reports("TestRep").Printer
' Раскомментируйте свойства принтера, значения которых хотите изменить программно
With prtFirst
.TopMargin = Me.верх '1440
.BottomMargin = 1440
.LeftMargin = Me.левого
.RightMargin = Me.Справа
' .ColumnSpacing = 360
' .RowSpacing = 360
''.ColorMode = acPRCMMonochrome
.DataOnly = False 'данные , без даных true
'.DefaultSize = False 'True '
'.ItemSizeHeight = Val(Me.Высота)' выводит на пол страницы
'.ItemSizeWidth = Val(Me.Ширина) '2880
'.ItemLayout = acPRVerticalColumnLayout
'.ItemsAcross = 6
.Orientation = Me.Orientanion
.Copies = Me.Экзепляры
'.Duplex = acPRDPVertical
'.PaperBin = acPRBNAuto
'.PaperSize = acPRPSA4 ' acPRPSLetter
'.PrintQuality = acPRPQDraft ' acPRPQMedium
End With
'Закрываем отчет, сохраняя сделанные изменения
DoCmd.Save acReport, "TestRep"
'DoCmd.Close acReport, "TestRep", acSaveYes
'Открываем отчет в режиме просмотра
DoCmd.OpenReport "TestRep", Me.Печать
End Sub
|