'Создайте отчет с именем "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 |