Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
 Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Добрый день!
Прикупила наша контора классный принтер, который может печатать с дух сторон, решил переделать базу, под двухстороннюю печать. Да не тут то было, печатает первый лист нормально, а второй переворачивает по ВЕРТИКАЛИ, а надо по ГОРИЗОНТАЛИ.
По сему нужна помощь гуру, код прилагаю

+
Private Sub Кн_Печать_1_Click()
 With Forms(Договор_ГСК_2х).Printer
 .Copies = 2
 .Orientation = acPRORLandscape
 .Duplex = vbPRDPHorizontal
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .PrintQuality = acPRPQMedium
 End With
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True
End Sub


P.S.: Причём на ".Copies = 2" реагирует, а на основное из за чего вся заморока ".Duplex = vbPRDPHorizontal" нет, и ещё если я в нвстройках принтера делаю переворот п огоризонтали то тогда печатает, но надо сразу жёстко прописать, ибо - НАДО.

Сообщение было отредактировано: 10 фев 21, 13:54
10 фев 21, 13:57    [22278820]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, если не реагирует, значит принтер по умолчанию другой.
10 фев 21, 15:36    [22278926]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

на печать отправляет, количество копий тоже реагирует, размер бумаги реагирует, а разварачивать не хочет, принтер "HP LaserJet Pro M428f-M429f UPD PS"
10 фев 21, 15:52    [22278938]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Пробовал ещё вот так:

+
Private Sub Кн_Печать_1_Click()
 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    Dim stDocName As String
    stDocName = "Договор_ГСК_2х"
    DoCmd.OpenReport stDocName, acNormal, Printer.Duplex = 2
    DoCmd.PrintOut acPages, 1, 2, acHigh, 1, True
End Sub

ругается на "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70", если выкидываю эту строчку то ругается на "DoCmd.OpenReport stDocName, acNormal ', Printer.Duplex = 2"
То есть этот метод вообще не печатает-(

Сообщение было отредактировано: 10 фев 21, 15:56
10 фев 21, 16:02    [22278952]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
Пробовал ещё вот так:

Тут смотрели?
...
И по умолчанию тот принтер - точно?
10 фев 21, 16:14    [22278962]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

Смотрел, но ничего там не понял, там зачем то считают количество страниц и т.д., а по поводу принтера у меня в коде прописано Me.Printer - то принтер по умолчанию, как я понимаю.

И к стати тот кусок кода печати я выдернул из другой своей базы, там изумительно печатает, а в этой не хочет, проверил "Reference" все DLLшки одинаковые.

Сообщение было отредактировано: 10 фев 21, 16:35
10 фев 21, 16:40    [22278983]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, vbPRDPHorizontal(?) acPRDPHorizontal
10 фев 21, 18:14    [22279049]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

ни так ни так не работает
10 фев 21, 20:01    [22279113]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, давненько не настраивал принтеры, посмотрел код, пример выбора ниже
 If prtDuplex = acPRDPVertical Then .Orientation = acPRORLandscape Else .Orientation = acPRORPortrait
.Duplex = prtDuplex
10 фев 21, 20:39    [22279145]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Ругается не работает.
11 фев 21, 09:44    [22279305]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Ругается на ".Orientation ="
11 фев 21, 10:34    [22279346]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
+ это ж пример - его нужно самостоятельно адаптировать к своей программе
в примере при
.Orientation = acPRORLandscape
использовалось
.Duplex = acPRDPVertical

Private Sub Кн_Печать_1_Click()
 With Forms(Договор_ГСК_2х).Printer
 .Copies = 2
 .Orientation = acPRORLandscape
 .Duplex = acPRDPVertical ' предполагалось что поменяете здесь
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .PrintQuality = acPRPQMedium
 End With
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True
End Sub

у меня там программа универсальная - приходилось в одной пачке из 250 листов печатать и дуплексом и в альбомной ориентации и из разных лотков, учитывается и поле для подшивки и пр.
11 фев 21, 11:56    [22279415]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Попробовал.
+
Private Sub Кн_Печать_1_Click()
 With Forms(Договор_ГСК_2х).Printer
 .Copies = 2                           ''К стати это тоже перестало работать, печатает по одной копии
 .Orientation = acPRORLandscape
 .Duplex = acPRDPHorizontal            ''acPRDPVertical  предполагалось что поменяете здесь поменял и туда и суда, не помогло
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .PrintQuality = acPRPQMedium
 End With
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True
End Sub


Такое ощущение, что на With вообще не реагирует -(
А из-за принтера "HP LaserJet Pro M428f-M429f UPD PS" может быть данный геморрой?

Попробовал:
With Me.Form.Printer
не помогло
11 фев 21, 13:40    [22279476]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

И вот ещё не понятно почему форма "Пустая" может ещё в этом причина? или это так и должно быть?

К сообщению приложен файл. Размер - 40Kb
11 фев 21, 13:44    [22279477]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Wawan2005
With Forms("Договор_ГСК_2х").Printer
отакота надо
11 фев 21, 13:49    [22279485]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Панург
отакота надо
это же коллекция. объекты получаем либо по ключу (текстовый), либо по порядковому номеру

в целях повышения образованности - а кто такой будет этот Иван Фёдорович Крузенштерн Объект Forms (Access)? (с)
11 фев 21, 13:56    [22279489]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Панург,

Ковычки поставил, показывать "Empty" перестало, но всё равно на копии и дуплекс не реагирует

P.S.:
.Orientation = acPRORLandscape   '  acPRORPortrait   acPRORLandscape 

работает переворачивает страницу, остальное не хотит-(
11 фев 21, 15:17    [22279534]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, копии Вы в Docmd.PrintOut задаете
11 фев 21, 15:42    [22279552]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,
Вот так

+
Private Sub Кн_Печать_1_Click()

 With Forms("Договор_ГСК_2х").Printer
 .Copies = 2
 .Orientation = acPRORLandscape   '  acPRORPortrait   acPRORLandscape
 .PrintQuality = acPRPQMedium
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .Duplex = acPRDPHorizontal  ' acPRDPHorizontal  acPRDPVertical

 End With
     
     DoCmd.PrintOut ' acPages, 1, 2, acHigh, , True

End Sub


и вот так пробовал

+
Private Sub Кн_Печать_1_Click()

 With Forms("Договор_ГСК_2х").Printer
 .Copies = 2
 .Orientation = acPRORLandscape   '  acPRORPortrait   acPRORLandscape
 .PrintQuality = acPRPQMedium
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .Duplex = acPRDPHorizontal  ' acPRDPHorizontal  acPRDPVertical

 End With
     
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True

End Sub
11 фев 21, 15:45    [22279555]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Попробовал на другой принтер (тоже поддерживает двустороннюю печать Canon IP7240), результат тот же-(
11 фев 21, 16:47    [22279604]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
+ а так?

Private Sub Кн_Печать_1_Click()
dim i as long
 With Me.Printer
 .Orientation =acPRORPortrait
 .PrintQuality = acPRPQMedium
 .Duplex = acPRDPHorizontal 
 End With
    for i=1 to 2 
     DoCmd.PrintOut acPrintAll
next i
End Sub

или так?
Private Sub Кн_Печать_1_Click()
const i as long=2
 With Me.Printer
 .Orientation =acPRORPortrait
 .PrintQuality = acPRPQMedium
 .Duplex = acPRDPHorizontal 
 End With
     DoCmd.PrintOut acPrintAll, , , , i
End Sub

с docmd.Printout - были проблемы ,в том числе и с копиями, но что там было - не помню уже, однако копии печатал по первому способу, когда не удавалось отказаться от использования этой функции.
все настройки у меня для отчетов - формы не печатал, может у них какая-то особенность есть-типа печать формы из формы нельзя... тут не смогу помочь в эту тему не влезал.
11 фев 21, 17:20    [22279619]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Количество копий печатает (теперь) но это не решило основную проблему ".Duplex = acPRDPHorizontal"
11 фев 21, 18:00    [22279644]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, да, забыл поправить
.duplex=acPRDPVertical 

у меня только такая версия.
11 фев 21, 18:23    [22279664]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

попробую в отчёт переделать, и на нём проверить, будет работать или нет, мож правда это на форме не работает
11 фев 21, 22:11    [22279764]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Проверил в Отчёте, тоже самое.
Мож у Вас какие ещё библиотеки подцеплены, а у меня нет поэтому и не хочет?
Если не трудно свою киньте.

К сообщению приложен файл. Размер - 66Kb
12 фев 21, 08:45    [22279861]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
проект большой и старый только модулей класса в районе 50 - у вас все нормально, эти модули печати у меня в модуле класса , вот здесь 2 программки для печати и для иллюстрации одна программка печатающая, в зависимости от отчета настройки меняются
+ ничего не редактировал - представляю по принципу как есть
Private v1d%, Otb0r%, Rep0rtName$

Private Sub PrtSv(rptname As String, prtDuplex As Long, Kiosk As Integer, LefM As Integer, TopM As Integer, vibor As Boolean, Lotok As Long, ByVal PrintQ As Long, Argument%, Optional fltr$ = "[Kiosk]=")
  If vibor Then DoCmd.OpenREport rptname, acViewPreview, , fltr & Kiosk, , Argument Else DoCmd.OpenREport rptname, acViewPreview, , , acHidden, Argument
With Reports(rptname).Printer
    If prtDuplex = acPRDPVertical Then .Orientation = acPRORLandscape Else .Orientation = acPRORPortrait
        .PaperSize = acPRPSA4
        .LeftMargin = LefM
        .TopMargin = TopM
        .Duplex = prtDuplex
        .PrintQuality = PrintQ
        .PaperBin = Lotok
End With
DoCmd.OpenREport rptname, acViewNormal
DoCmd.Close acReport, rptname, acSaveNo
End Sub
Private Sub CommonPrint()
Dim x%, i%, z%, prt As Report
x = frm.Copyes
    Set prt = Reports.Item(Rep0rtName)
    With prt.Printer
        .Orientation = acPRORPortrait
        .PaperSize = acPRPSA4
        .PrintQuality = acPRPQHigh
    End With
     For z = 1 To x
        prt.Application.DoCmd.PrintOut acPrintAll
    Next z
     DoCmd.Close acReport, Rep0rtName
Set prt = Nothing

End Sub

Private Sub bPrint_Click()
Dim Lotok&, Dupl&, Dup As Boolean
 Lotok = frm.fldSpis1: Dup = frm.dflg1

If Otb0r = 1 Then frm.Dirty = False
Select Case Rep0rtName
Case "RepRaspr4_Igr", "rptActGroup"
    If Otb0r = 1 Then PrintInvoices Else CommonPrint
Case "RptRev1", "rptPriceKiosks2"
'  DoCmd.Close acReport, rptname
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 1, 0, 0, False, Lotok, acPRPQDraft, v1d)
Case "RptRasklad"
  Dupl = acPRDPVertical ' пока нет необходимости такой печатать альбомы на одной стороне, а когда надо, то придется ориентацию указывать явно
    Call PrtSv(Rep0rtName, Dupl, 1, 150, 100, False, Lotok, acPRPQDraft, v1d)
Case "RptRev2"
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 0, 2200, 300, False, Lotok, acPRPQMedium, v1d)
Case Else
    CommonPrint
End Select
End Sub

как видно Docmd.Printout используется только для печати в обычном виде - даже копии ему не доверяются, хотя настройка такая в нем есть, а печать с настройками происходит по другому (вызов отчета в нормальном виде).
12 фев 21, 09:54    [22279879]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

ругается на строчку "If Otb0r = 1 Then PrintInvoices Else CommonPrint" точнее "PrintInvoices"

+
Private Sub Кн_Печать_1_От_Click()
Dim Lotok&, Dupl&, Dup As Boolean
 Lotok = frm.fldSpis1: Dup = frm.dflg1

If Otb0r = 1 Then frm.Dirty = False
Select Case Rep0rtName
Case "RepRaspr4_Igr", "rptActGroup"
    If Otb0r = 1 Then PrintInvoices Else CommonPrint
Case "RptRev1", "rptPriceKiosks2"
'  DoCmd.Close acReport, rptname
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 1, 0, 0, False, Lotok, acPRPQDraft, v1d)
Case "RptRasklad"
  Dupl = acPRDPVertical ' пока нет необходимости такой печатать альбомы на одной стороне, а когда надо, то придется ориентацию указывать явно
    Call PrtSv(Rep0rtName, Dupl, 1, 150, 100, False, Lotok, acPRPQDraft, v1d)
Case "RptRev2"
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 0, 2200, 300, False, Lotok, acPRPQMedium, v1d)
Case Else
    CommonPrint
End Select
End Sub
12 фев 21, 11:41    [22279931]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, этой функции в примере нет.
как может быть и ещё чего - показан работающий в проекте, пример - для того чтоб сделали по подобию, взяв то, что понравится.
12 фев 21, 12:36    [22279964]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

нееее
я его воткнул полностью. как Вы выложили так и вставил, только имя кнопки поменял

Сообщение было отредактировано: 12 фев 21, 13:29
12 фев 21, 13:36    [22279998]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А какие у Вас библиотеки включены, как у меня или ещё что-то, может в них дело?!

К сообщению приложен файл. Размер - 66Kb


Сообщение было отредактировано: 12 фев 21, 17:43
12 фев 21, 17:50    [22280172]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, такие.
ну блин! давненько скрины не вытаскивал

К сообщению приложен файл. Размер - 148Kb


Сообщение было отредактировано: 12 фев 21, 20:17
12 фев 21, 20:23    [22280250]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А У Вас какой офис, а то чёт у меня не все библиотеки в наборе есть, а некоторые старой версии (12)
12 фев 21, 21:17    [22280283]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Вот что ещё обнаружил

К сообщению приложен файл. Размер - 92Kb
12 фев 21, 21:24    [22280286]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Что бы это значило?
Причём это относится ко всем строчкам "With"

К сообщению приложен файл. Размер - 10Kb


Сообщение было отредактировано: 12 фев 21, 21:19
12 фев 21, 21:25    [22280287]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
программа писалась в Аксесс 2007, но сейчас у меня 13-й - поэтому библиотеки подхватились другой версии.
Wawan2005
Что бы это значило?
Причём это относится ко всем строчкам "With"

сделайте останов на End with-увидите что все нормально.
13 фев 21, 11:13    [22280413]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Ну да, но почему тогда не принимается системой во внимание?
а печатает с настройками "по умолчанию" принтера ?
Попробовал изменить настройки по умолчанию напечатал как надо, но нужно другие доки печатать тогда там геморрой-(
13 фев 21, 16:32    [22280487]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, у Гетца есть утилитка, в которой можно посмотреть что принтер поддерживает. очень помогает в самом начале знакомства с принтером.
13 фев 21, 16:47    [22280493]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
а печатает с настройками "по умолчанию" принтера ?

не совсем понимаю что у вас там происходит, но может вам поможет такая штука :
Модуль переустановки "принтерных" настроек всех отчетов под текущий принтер по умолчанию
автор
Ситуация:
.... у разработчика (отчетов), допустим был:
HP LaserJet с EconoMode = OFF, а у пользователя некий: Epson Stylus COLOR и уже EconoMode = ON
...и не смотря на это "ON" - отчеты все равно расходуют чернила "На полную катушку". (параметры печати сохраняются в отчете)


На эту тему сочинилось такое решение:
+

'--------------------------------------------------------------------
' Module    : modReportsPrinterReset
' Author    : es
' Date      : 17.01.2004
'--------------------------------------------------------------------
'Модуль ПЕРЕУСТАНОВКИ "принтерных" настроек всех отчетов
'под текущий принтер по умолчанию т.е. с настроек принтера разработчика
'на настройки принтера пользователя
'--------------------------------------------------------------------
Option Compare Database
Option Explicit

Private Type str_DEVMODE
    RGB As String * 94
End Type
'--------------------------------------------------------------------
Private Type type_DEVMODE
    strDeviceName As String * 16
    intSpecVersion As Integer
    intDriverVersion As Integer
    intSize As Integer
    intDriverExtra As Integer
    lngFields As Long
    intOrientation As Integer
End Type

Public Sub esResetAllReportsToDefPrinter()
'Смена у всех отчетов настроек принтера с "зашитых внутри отчета"
' на текущий принтер по умолчанию и его настройки
' затирает только данные по принтеру - поля и ориентация остаются прежними
'--------------------------------------------------------------------
Dim dbs As Database, ctr As Container, doc As Document
Dim objReport As Report
Dim OldOrientation As Integer 'Для запоминания старой ориентации _
   т.к. она (ориентация) входит в Свойство PrtDevMode отчета _
   кое собираемся переписывать по новой
    
On Error GoTo esResetAllReportsToDefPrinterErr
'Выключ. отображение процесса
    Application.Echo False
    Set dbs = CurrentDb
    Set ctr = dbs.Containers!Reports
    'цикл по всем отчетам
    For Each doc In ctr.Documents
        'открытие отчета в режиме редакции
        DoCmd.OpenReport doc.name, acViewDesign
        Set objReport = Reports(doc.name)
        
        'отображение инфы о тек. отчете в Status Bar
        SysCmd acSysCmdSetStatus, "Обрабатываю Отчет - " & doc.name
        
        'Запоминаем старую ориентацию для последующего восстановления (см. функцию ниже)...
        OldOrientation = esReportOrientationSetGet(objReport, True)
        'Зачистка данных о принтере в отчете
        objReport.PrtDevMode = Null
        objReport.PrtDevNames = Null
        'Закрытие отчета с сохранением "пустого принтера"
        DoCmd.Close acReport, doc.name, acSaveYes

        'Если до этого у отчета была ориентация LandsCape
        '   то восстанавливаем ее, причем отчет уже "берет"
        '   принтер по умолчанию, при повторном открытии
        If OldOrientation = 2 Then
            'открытие отчета в режиме редакции
            DoCmd.OpenReport doc.name, acViewDesign
            Set objReport = Reports(doc.name)
            
            'Debug.Print objReport.Name
            'Восстанавливаем LandsCape ориентацию (см. функцию ниже)
            '   если была Portrait то восстанавливать нет необходимости
            '   т.к. она уже установлена по умолчанию
            esReportOrientationSetGet objReport
            'Закрытие отчета с сохранением
            DoCmd.Close acReport, doc.name, acSaveYes
        End If
    Next doc
    SysCmd (acSysCmdClearStatus)
'Включаем отображение процесса на экране обратно
    Application.Echo True
    Exit Sub
esResetAllReportsToDefPrinterErr:
    Application.Echo True
    MsgBox "Процедура [esResetAllReportsToDefPrinter] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    "При обработке Отчета - " & doc.name, vbCritical
End Sub

'--------------------------------------------------------------------
Private Function esReportOrientationSetGet(objCurReport As Report, _
                    Optional GetOnly As Boolean) As Integer
'Вспомогательная функция ,в зависимости от параметра GetOnly,
'ИЛИ :
'Возвращает код ориентации отчета
'   Portrait = 1
'   LandsCape= 2
'ИЛИ если GetOnly=False (по умолчанию):
'   делает ориентацию открытого отчета = LandsCape
'--------------------------------------------------------------------

Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String

On Error GoTo esReportOrientationSetGetErr
    If Not IsNull(objCurReport.PrtDevMode) Then
        strDevModeExtra = objCurReport.PrtDevMode
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        esReportOrientationSetGet = DM.intOrientation
        'Если только задано параметром то вносим изменения в отчет
        If GetOnly = False Then
            'Меняем ориентацию  = LandsCape
            DM.intOrientation = 2
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            objCurReport.PrtDevMode = strDevModeExtra
        End If
    End If
    Exit Function
esReportOrientationSetGetErr:
    If GetOnly = True Then
        strDevModeExtra = "При определении ориентации Отчета - " & _
        objCurReport.name
    Else
        strDevModeExtra = "При установке ориентации Отчета - " & _
        objCurReport.name
    End If
    MsgBox "Процедура [esReportOrientationSetGet] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    strDevModeExtra, vbCritical
End Function


13 фев 21, 16:57    [22280497]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

Спасибо, за вариант, выйду на работу попробую.

P.S.: А как суда при необходимости, добавить "Duplex = acPRDPHorizontal", но это после проверки.

Сообщение было отредактировано: 13 фев 21, 22:19
13 фев 21, 22:24    [22280622]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
А как суда при необходимости, добавить "Duplex = acPRDPHorizontal", но это после проверки.

Резервную копию приложения сделать предварительно не забудьте - модуль старый.
...
Модуль "обнулит" настройки на конкретный принтер в отчётах, и перепишет на тек. принтер по умолчанию.
А нужное - потом добавите ...

Надеюсь поможет, но не факт.
Что то у вас там "не так", ни как ни пойму что ...
Бывает ...
13 фев 21, 23:35    [22280651]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А что за утилитка, не подскажите имя, я бы её пошукал по просторам инета!

Сообщение было отредактировано: 14 фев 21, 22:08
14 фев 21, 22:14    [22280874]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
у гетца - 9-я глава 1-й том.
приложение к главе 9
15 фев 21, 11:01    [22280990]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Спасибо, бегло глянул, там ППЦ-))), попробую разобраться.
P.S.:Пока нет времени, пульт охраны лёг, подымаем, как всё восстановим так продолжу.
16 фев 21, 08:17    [22281426]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Добрался я таки до базы и ка всегда не без приключений.

Во первЫх строках своего письма хочу сказать спасибо, так как выбирать принтер по умолчанию у меня получилось, вот кусок кода:

+
'Принтер
Private Sub П_Выбор_Принт_AfterUpdate()
    Set Application.Printer = _
     Application.Printers.Item(Me.П_Выбор_Принт.Value)
    MsgBox "Принтер по умолчанию: " & Me.П_Выбор_Принт
End Sub
Private Sub Form_Load()
    Dim prt As Printer
    For Each prt In Printers
        Me.П_Выбор_Принт.AddItem prt.DeviceName
    Next prt
    Me.П_Выбор_Принт = Application.Printer.DeviceName
End Sub


А вот конкретно двухстороннюю печать выдернуть у Гетца ника не получается, вот попробовал кусок но он матерится на строчку:
Set rpt = Reports(mstrName)
но по правде говоря он и в оригинале на неё матерился я так и не понял что такое
Reports(mstrName)
а точнее
(mstrName)
получилось вот так:
Private Sub П_Выбор_Печать_AfterUpdate()
    Dim rpt As Report
    Set rpt = Reports(mstrName)
    If П_Выбор_Печать = "Односторонняя" Then
        With rpt.Printer
            .Duplex = acPRDPSimplex
        End With
    Else
        With rpt.Printer
            .Duplex = acPRDPHorizontal 
        End With
    End If
End Sub

подскажите, пожалуйста, что у меня не так (намёки на голову не писать я это и сам знаю).
23 июн 21, 16:32    [22339253]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Wawan2005
mstrName
тут по идее имя твоего отчета, который ты хочешь распечатать
23 июн 21, 16:40    [22339257]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
vmag,

Упсссс.
А мне печать отчёта не нужна, мне нужно чтобы установки применились ко всем, в последствии, открываемым формам, ну и может быть когда ни-будь к отчётам.

Не подскажите как поправить?

Сообщение было отредактировано: 23 июн 21, 16:36
23 июн 21, 16:45    [22339261]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
vmag,

Попробовал вот так:
Private Sub П_Выбор_Печать_AfterUpdate()
    Dim rpt As Forms
    Set rpt = Forms
    If П_Выбор_Печать = "Односторонняя" Then
       Printer.Duplex = acPRDPSimplex
    Else
       Printer.Duplex = acPRDPHorizontal ' - acPRDPVertical rpt.
    End If
End Sub

материться перестал но и не ставит двухстороннюю печать принтера -(
23 июн 21, 17:16    [22339275]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Wawan2005,

ну, во-первых я формы никогда не печатал, суп ем ложкой а котлеты вилкой...
Во-вторых все проблемы с двусторонней печатью решал на уровне принтера, файл, печать, выбираешь принтер и в его свойствах ставил галочку двусторонняя печать...
Если это частая операция, то можно установить еще один экземпляр принтера, обозвать его типа Canon_Duplex и включить на нем галочку двусторонняя печать на постоянку...
Послал на Canon - односторонняя печать
Послал на Canon_Duplex - двусторонняя печать

Сообщение было отредактировано: 23 июн 21, 17:16
23 июн 21, 17:24    [22339282]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
vmag,

не совсем подходит, так как эта база уже в 6 районах, а у нас у всех разные принтеры, у некоторых вообще двухсторонку не поддерживают
по этому я сделал уже выбор принтера он работает, выбирает нужный принтер, осталось только с дуплексом разобраться
Я вот так попробовал, вставить
Application.Printer.Duplex = acPRDPHorizontal 
тоже не реагирует

Private Sub П_Выбор_Принт_AfterUpdate()
    Set Application.Printer = _
     Application.Printers.Item(Me.П_Выбор_Принт.Value)
     Application.Printer.Duplex = acPRDPHorizontal
    MsgBox "Принтер по умолчанию: " & Me.П_Выбор_Принт
End Sub
23 июн 21, 17:41    [22339292]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
если отправите на печать конкретный отчет(форму) по имени mstrName, для которых вы создаете объект принтер- в этой же процедуре - дуплекс должен быть (если принтер поддерживает и он есть физически и готов к работе)
23 июн 21, 21:29    [22339437]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А это я ещё не пробовал, попробую прописать для конкретной формы, мо заработает.

Сообщение было отредактировано: 24 июн 21, 00:01
24 июн 21, 00:07    [22339523]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
завтра

Сообщение было отредактировано: 24 июн 21, 00:01
24 июн 21, 00:09    [22339528]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Вставил в кнопку формы


Private Sub Кн_Таб_Дебет_Click()
    Dim stDocName As String
    Dim stLinkCriteria As String
    
    Dim rpt As Forms
    Set rpt = Me.Ф_Увед_Конверт_Должн
    If П_Выбор_Печать = "Односторонняя" Then
       Printer.Duplex = acPRDPSimplex
    Else
       Printer.Duplex = acPRDPHorizontal 
    End If

    stDocName = "Ф_Дебиторка"
    DoCmd.OpenForm stDocName, acFormDS
Exit_Кн_Таб_Дебет:
    Exit Sub
Err_Кн_Таб_Дебет_Click:
    MsgBox Err.Description
End Sub

не помогло
24 июн 21, 08:39    [22339579]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
+ нужно что-то типа такого
Private Sub Кн_Таб_Дебет_Click()
On Error GoTo Кн_Таб_Дебет_Click_ERROR
    With Me.Printer
    If П_Выбор_Печать = "Односторонняя" Then
       .Duplex = acPRDPSimplex
    Else
       .Duplex = acPRDPHorizontal
    End If
   End With
    DoCmd.OpenForm "Ф_Дебиторка", acFormDS' сомневаюсь что такой формат, может DoCmd.PrintOut ...?

Exithere:

Exit Sub
Кн_Таб_Дебет_Click_ERROR:
If RejDevel00pers Then Debug.Print err.Number; Tab; err.Description: Stop: Resume ' RejDevel00pers =true 
Resume Exithere

End Sub
24 июн 21, 15:08    [22339787]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Не помогло -(
24 июн 21, 15:29    [22339799]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, такой способ вывода на печать это про отчеты.
24 июн 21, 15:40    [22339809]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Таааак, уже интереснее, у меня то форма-(
Могу выслать саму базу (просто она в РАРе и то 16 мег, меньше ужать не могу)

Сообщение было отредактировано: 24 июн 21, 16:56
24 июн 21, 17:04    [22339847]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, способ вывода с помощью открытия - так печатаются отчеты - у них есть такое свойство при открытии 2-й раз в нормальном режиме отчет идет на печать - у форм такого нет,
acFormDS - вывод формы в виде таблицы - с таким не работал, но сомневаюсь что такой способ вывода формы автоматом отправит на принтер её. поэтому либо пробовать вывод на печать printout, либо как все - отчеты :)
24 июн 21, 17:09    [22339849]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

отчёт тоже не реагирует на дуплекс-(
только что переделал форму в отчёт, не помогло (по большому счёту мне пофигу форма это будет или отчёт)
24 июн 21, 17:32    [22339865]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, в отчете кнопку нажать не получится - его нужно открыть в 1-й раз в режиме предварительного просмотра - отформатировать как надо. кнопку нажимать в форме :). ну скиньте че уж, раз влез в эту тему.
24 июн 21, 18:21    [22339890]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Спасибо, за ответ, завтра буду на работе попробую (дома нет принтера с двухсторонней печатью)
25 июн 21, 22:30    [22340488]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Всё равно не работает-(
28 июн 21, 09:53    [22340953]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Вот этот код принимает как родной всё работает:
+
'Смена принтера
Private Sub П_Выбор_Принт_AfterUpdate()
    Set Application.Printer = _
        Application.Printers.Item(Me.П_Выбор_Принт.Value)
    MsgBox "Принтер по умолчанию: " & Me.П_Выбор_Принт
End Sub
Private Sub Form_Load()
    Dim prt As Printer
    For Each prt In Printers
        Me.П_Выбор_Принт.AddItem prt.DeviceName
    Next prt
    Me.П_Выбор_Принт = Application.Printer.DeviceName
End Sub

Меняет принтер всё без проблем

А вот со сменой одно- двух- сторонней печати проблема
+
Private Sub П_Выбор_Печать_AfterUpdate()
    Dim rpt1 As Forms
    Set rpt1 = Forms
    If П_Выбор_Печать = "Односторонняя" Then
       Printer.Duplex = acPRDPSimplex
    Else
       Printer.Duplex = acPRDPHorizontal ' - acPRDPVertical rpt.Ф_Увед_Конверт_Должн
    End If
End Sub

Как будто этого куска кода не существует.

Попробовал печатать отчётом, вот такой код прислал "alecko" тоже не помогло
+
  Private Sub Кн_Конверт_Должн_ОТЧ_Click()
    Dim stLinkCriteria As String
    Dim stDocName As String
stDocName = "О_Увед_Конверт_Должн"
   With Me
    If .OpenArgs = "Односторонняя" Then
       .Printer.Duplex = acPRDPSimplex
    Else
       .Printer.Duplex = acPRDPHorizontal ' - acPRDPVertical rpt.Ф_Увед_Конверт_Должн
    End If
    End With
    DoCmd.OpenReport stDocName, acViewPreview
    DoCmd.OpenReport stDocName, acViewNormal
    DoCmd.Close acReport, stDocName
    DoCmd.Close acForm, Me.Name
    End Sub

Тоже работать не хочет.

Нашёл вот кусок кода, но не могу адаптировать под себя, может кто помочь?
+
Sub mm160224()           '''запускается при закрытом отчете
CheckCustomPage "query1"
End Sub
Public Sub CheckCustomPage(ByVal rptName As String)
 
    Dim DevString As str_DEVMODE
    Dim DM As type_DEVMODE
    Dim strDevModeExtra As String
    Dim rpt As Report
    Dim intResponse As Integer
    
    ' Opens report in Design view.
    DoCmd.OpenReport rptName, acDesign
    Set rpt = Reports(rptName)
    
    If Not IsNull(rpt.PrtDevMode) Then
        strDevModeExtra = rpt.PrtDevMode
        
        ' Gets current DEVMODE structure.
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        
        
            intResponse = MsgBox("d=" & DM.intDuplex, vbDefaultButton1)
        
        If intResponse = vbYes Then
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DM.intDuplex = 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
''попробовать не могу, у меня нет такого принтера
''An Integer. For a printer capable of duplex printing, specifies whether the output is printed on both sides of the paper. The values are
''1 (simplex), 2 (horizontal), and 3 (vertical).
           
'' Для принтера, способного двусторонней печати,
''указывает ли печатается выходной на обеих сторонах бумаги. Значения
'' 1 (симплекс), 2 (по горизонтали), а 3 (по вертикали).
           
            ' Update property.
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            rpt.PrtDevMode = strDevModeExtra
        End If
    End If
    
    Set rpt = Nothing
    
End Sub

В идеале хочу, что бы установки принтера выбирались в главной форме и действовали на все документы отправляемые на печать.
Такое возможно???
Кто нибудь подскажет???
28 июн 21, 10:39    [22340982]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko
у гетца - 9-я глава 1-й том.
приложение к главе 9


Здесь был, разобраться не смог
28 июн 21, 10:41    [22340985]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А у вас нет этой книги, а то чёт в инете на русском найти так и не смог , может по этому и разобраться с приложением не получилось?
28 июн 21, 10:50    [22340992]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
в коде у меня ошибка
план действий:
- открываем отчет
настраиваем дуплекс
печатаем
все закрываем, возвращаемся на форму

+ исправлено
  Private Sub Кн_Конверт_Должн_ОТЧ_Click()
    Dim stLinkCriteria As String
    Dim stDocName As String
stDocName = "О_Увед_Конверт_Должн"
    DoCmd.OpenReport stDocName, acViewPreview, , , acHidden' открыли отчет скрыто
    If not  Me.OpenArgs = "Односторонняя" Then
       Reports(stDocName).Printer.Duplex = acPRDPHorizontal ' настроили дуплекс
    End If
    DoCmd.OpenReport stDocName, acViewNormal' печать 
    DoCmd.Close acReport, stDocName ' все закрываем
    DoCmd.Close acForm, Me.Name
    End Sub

1-й том

Сообщение было отредактировано: 28 июн 21, 12:43
28 июн 21, 12:51    [22341050]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Не сработало-(
28 июн 21, 13:06    [22341062]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
у меня это (похожая процедура-там и выбор лотка, и ориентация, поля) работала на HP-4350, HP-4250.
прога Гетца, которая дает всю информацию о принтерах что показывает?
принтер должен быть по умолчанию установлен тот, который поддерживает дуплекс, либо его нужно назначить таковым перед печатью.

Сообщение было отредактировано: 28 июн 21, 13:34
28 июн 21, 13:37    [22341091]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

У меня 2 принтера с дуплексом HP LaserJet Pro M428f-M429f UPD PS и Canon IP7240, ни один не хочет печатать двухсторонку, оба показывают наличие дуплекса в проге геца, и принтер сначала выбираю один из этих

Сообщение было отредактировано: 28 июн 21, 15:01
28 июн 21, 15:10    [22341136]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Попробовал с Геца
Private Sub Кн_Конверт_Должн_ФОР_Click()
    Const conReport As String = "О_Увед_Конверт_Должн"
    DoCmd.OpenReport conReport, _
     View:=acViewPreview, WindowMode:=acHidden
    With Reports(conReport).Printer
        .Duplex = acPRDPHorizontal
    End With
    DoCmd.OpenReport conReport
    DoCmd.Close acReport, conReport
End Sub

нифика не работает
Мож какая ДЛЛеха не подключена???
28 июн 21, 16:48    [22341181]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

К стати за книгу спасибо.
28 июн 21, 16:53    [22341184]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,чет не посмотрел - там у вас превышение ширины страницы (откройте отчет в режиме конструктора -увидите слева вверху зеленый треугольник), т.е. он печатает вторым листом на обороте пустой небольшой кусочек - поэтому может быть не видно - страницу поменьше сделайте (либо поля).
на всякий, для проверки в параметрах страницы есть возможность выбрать принтер вручную попробуйте назначьте его "жестко".
28 июн 21, 16:55    [22341187]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Да и ещё оказывается пример геца "frmPrinterSettings" при попытке напечатать двухсторонний документ выдаёт ошибку

ругается на " Set rpt = Reports(mstrName) "

+
Private Sub cmdPrint_Click()
    Dim rpt As Report
    
    Set rpt = Reports(mstrName)
    With rpt.Printer
        .ColorMode = cboColorMode.Value
        .Copies = txtCopies.Value
        .Duplex = cboDuplex.Value
        .Orientation = cboOrientation.Value
        .PaperBin = cboPaperBin.Value
        .PaperSize = cboPaperSize.Value
        .PrintQuality = cboPrintQuality.Value
    End With
End Sub

прямо в файле Ch09
28 июн 21, 17:12    [22341193]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko
Wawan2005,чет не посмотрел - там у вас превышение ширины страницы (откройте отчет в режиме конструктора.

Попробовал не помогло.
Принтер не прописывал "жёстко", так как выбор принтера по умолчанию выбирается изначально адекватно, какой выбрал туда и летит.
28 июн 21, 17:18    [22341195]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

Может что-то у меня с Офисом, есть какие нибудь мысли?
как вариант (чисто поржать) могу переустановить (у меня 2007) , или поставить другой : есть 2010; 2013; 2016; 2019, даже 2003 есть но он изначально половину моей базы не поймёт-)
Сборка Beloff_20.10

Сообщение было отредактировано: 28 июн 21, 17:14
28 июн 21, 17:23    [22341198]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, сделайте 1 столбец (вместо 2) станет нормально.
28 июн 21, 17:38    [22341202]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А у меня один столбец
Или я не о том подумал, весь отчёт построен как один столбец, страницы одна под другой.
28 июн 21, 17:46    [22341206]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
У этих принтеров ещё такая фишка, что когда задаёшь печать двухстороннюю, они начинают печатать с последнего листа, и если он чётный, то они его просто переворачивают, то есть всё равно видно что задана двусторонняя печать, также и если будет один лист, а в установках двусторонка будет стоять, то принтер его перевернёт (по крайней мере IP7240 это точно).
28 июн 21, 17:50    [22341209]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, про пример Гетца писал.
может принтеры не позволяют извне изменять настройки. сложно сказать.
28 июн 21, 18:03    [22341217]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

вот этого я и боюсь
29 июн 21, 11:21    [22341396]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko,

А точно ни каких дополнительных библиотек не надо включать?
29 июн 21, 21:31    [22341693]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005, печатало без допбиблиотек, но вполне возможно, что может быть какая то библиотека "облегчит страдания" - не знаю.
в этих принтерах вроде PCL нет, только PostScript - может быть в этом причина.
29 июн 21, 21:51    [22341698]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
alecko
только PostScript

А это в VBA прописать можно?
30 июн 21, 07:49    [22341758]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 849
Wawan2005,
честно говоря не вникал так глубоко, может вот для этого PS (лицензируемый Adobe) и нужна какая нить либа, поскольку кажется (ключевое слово) что VBA "говорит" с принтером на PCL (бесплатный).
в инструкции прописано, что по умолчанию стоит двухсторонняя печать - нужно что на одной стороне печатало? - просто у меня в коде прописано именно установка дуплекса, а simple как бы по умолчанию.
30 июн 21, 09:36    [22341781]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
народ, ну мож хоть у кого нибудь есть мысли как не через
  .Duplex = acPRDPHorizontal

или как вообще HP и Cаnonы заставить делать двухстороннюю печать
1 июл 21, 19:28    [22342544]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Вот ещё вариант нашёл, тоже не работает

Private Sub Кн_Конверт_Должн_Click()
    Dim rpt As Report
    Dim prtOld As Printer
    Dim prtNew As Printer
    Dim stDocName As String
    stDocName = "О_Увед_Конверт_Должн"
    DoCmd.OpenReport ReportName:="О_Увед_Конверт_Должн", View:=acViewPreview
    Set rpt = Reports!О_Увед_Конверт_Должн
    Set prtOld = rpt.Printer
    Set prtNew = rpt.Printer
    prtNew.Duplex = acPRDPHorizontal
    Set rpt.Printer = prtOld
    DoCmd.Close ObjectType:=acReport, ObjectName:=stDocName, Save:=acSaveYes
    DoCmd.OpenReport stDocName, , , , , acViewPreview
End Sub
1 июл 21, 23:02    [22342588]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS
На эту тему сочинилось такое решение:


+
'--------------------------------------------------------------------
' Module    : modReportsPrinterReset
' Author    : es
' Date      : 17.01.2004
'--------------------------------------------------------------------
'Модуль ПЕРЕУСТАНОВКИ "принтерных" настроек всех отчетов
'под текущий принтер по умолчанию т.е. с настроек принтера разработчика
'на настройки принтера пользователя
'--------------------------------------------------------------------
Option Compare Database
Option Explicit

Private Type str_DEVMODE
    RGB As String * 94
End Type
'--------------------------------------------------------------------
Private Type type_DEVMODE
    strDeviceName As String * 16
    intSpecVersion As Integer
    intDriverVersion As Integer
    intSize As Integer
    intDriverExtra As Integer
    lngFields As Long
    intOrientation As Integer
End Type

Public Sub esResetAllReportsToDefPrinter()
'Смена у всех отчетов настроек принтера с "зашитых внутри отчета"
' на текущий принтер по умолчанию и его настройки
' затирает только данные по принтеру - поля и ориентация остаются прежними
'--------------------------------------------------------------------
Dim dbs As Database, ctr As Container, doc As Document
Dim objReport As Report
Dim OldOrientation As Integer 'Для запоминания старой ориентации _
   т.к. она (ориентация) входит в Свойство PrtDevMode отчета _
   кое собираемся переписывать по новой
    
On Error GoTo esResetAllReportsToDefPrinterErr
'Выключ. отображение процесса
    Application.Echo False
    Set dbs = CurrentDb
    Set ctr = dbs.Containers!Reports
    'цикл по всем отчетам
    For Each doc In ctr.Documents
        'открытие отчета в режиме редакции
        DoCmd.OpenReport doc.name, acViewDesign
        Set objReport = Reports(doc.name)
        
        'отображение инфы о тек. отчете в Status Bar
        SysCmd acSysCmdSetStatus, "Обрабатываю Отчет - " & doc.name
        
        'Запоминаем старую ориентацию для последующего восстановления (см. функцию ниже)...
        OldOrientation = esReportOrientationSetGet(objReport, True)
        'Зачистка данных о принтере в отчете
        objReport.PrtDevMode = Null
        objReport.PrtDevNames = Null
        'Закрытие отчета с сохранением "пустого принтера"
        DoCmd.Close acReport, doc.name, acSaveYes

        'Если до этого у отчета была ориентация LandsCape
        '   то восстанавливаем ее, причем отчет уже "берет"
        '   принтер по умолчанию, при повторном открытии
        If OldOrientation = 2 Then
            'открытие отчета в режиме редакции
            DoCmd.OpenReport doc.name, acViewDesign
            Set objReport = Reports(doc.name)
            
            'Debug.Print objReport.Name
            'Восстанавливаем LandsCape ориентацию (см. функцию ниже)
            '   если была Portrait то восстанавливать нет необходимости
            '   т.к. она уже установлена по умолчанию
            esReportOrientationSetGet objReport
            'Закрытие отчета с сохранением
            DoCmd.Close acReport, doc.name, acSaveYes
        End If
    Next doc
    SysCmd (acSysCmdClearStatus)
'Включаем отображение процесса на экране обратно
    Application.Echo True
    Exit Sub
esResetAllReportsToDefPrinterErr:
    Application.Echo True
    MsgBox "Процедура [esResetAllReportsToDefPrinter] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    "При обработке Отчета - " & doc.name, vbCritical
End Sub

'--------------------------------------------------------------------
Private Function esReportOrientationSetGet(objCurReport As Report, _
                    Optional GetOnly As Boolean) As Integer
'Вспомогательная функция ,в зависимости от параметра GetOnly,
'ИЛИ :
'Возвращает код ориентации отчета
'   Portrait = 1
'   LandsCape= 2
'ИЛИ если GetOnly=False (по умолчанию):
'   делает ориентацию открытого отчета = LandsCape
'--------------------------------------------------------------------

Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String

On Error GoTo esReportOrientationSetGetErr
    If Not IsNull(objCurReport.PrtDevMode) Then
        strDevModeExtra = objCurReport.PrtDevMode
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        esReportOrientationSetGet = DM.intOrientation
        'Если только задано параметром то вносим изменения в отчет
        If GetOnly = False Then
            'Меняем ориентацию  = LandsCape
            DM.intOrientation = 2
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            objCurReport.PrtDevMode = strDevModeExtra
        End If
    End If
    Exit Function
esReportOrientationSetGetErr:
    If GetOnly = True Then
        strDevModeExtra = "При определении ориентации Отчета - " & _
        objCurReport.name
    Else
        strDevModeExtra = "При установке ориентации Отчета - " & _
        objCurReport.name
    End If
    MsgBox "Процедура [esReportOrientationSetGet] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    strDevModeExtra, vbCritical
End Function


У меня не скромный вопрос, а если я вам вышлю базу сможете адаптировать этот кусок под неё, а то я даже не берусь, ввиду скудных знаний VBA
5 июл 21, 09:40    [22343495]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
У меня не скромный вопрос, а если я вам вышлю базу сможете адаптировать этот кусок под неё

Там всё просто:
01. Делаете резервную копию БД
02. Создаёте внешний модуль с произвольным названием и вставляете весь код туда
03. На машине где ваш HP установлен как принтер по умолчанию - Запускаете процедуру esResetAllReportsToDefPrinter и ждёте окончания её работы.
04. Пробуете настроить двухстороннюю печать.
... не факт что поможет - но попробовать стоит.

Сообщение было отредактировано: 6 июл 21, 08:48
6 июл 21, 08:54    [22343965]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

хорошо
попробую
P.S.: Я там Вам письмо на почту кидал, пока не надо попробую сам, коль уж так просто, только вот ещё вопрос, HP он сетевой принт сервер и но умолчанию на всех компах (включая и мой), прокатит?
6 июл 21, 09:03    [22343967]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
HP он сетевой принт сервер и но умолчанию на всех компах (включая и мой), прокатит?

Да! (если вы по код и если установлен как принтер умолчанию)
6 июл 21, 13:26    [22344123]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
только вот ещё вопрос

Посмотрите еще тут:
https://www.sql.ru/forum/940849/kak-zastavit-druzhit-printreport-i-duplex
и тут:
https://www.sql.ru/forum/940849-2/kak-zastavit-druzhit-printreport-i-duplex
... там вроде получилось.

Сообщение было отредактировано: 6 июл 21, 13:23
6 июл 21, 13:31    [22344128]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,


Eugene-LS
Посмотрите еще тут:
https://www.sql.ru/forum/940849/kak-zastavit-druzhit-printreport-i-duplex
и тут:
https://www.sql.ru/forum/940849-2/kak-zastavit-druzhit-printreport-i-duplex
... там вроде получилось.


Ну там пишут, что получилось, но у меня не получилось. вот что изобрёл


  Private Sub Кн_Конверт_Должн_Click()
On Error GoTo Err_Кн_Конверт_Должн_Click
DoCmd.RunMacro "МакроРазвернуть.ВосстановитьОкно"
    Dim stDocName As String
    Reports.Printer.Duplex = acPRDPVertical
    stDocName = "Ф_Увед_Конверт_Должн"
    DoCmd.OpenReport stDocName, , , , , acViewPreview
Exit_Кн_Конверт_Должн_Click:
    Exit Sub
Err_Кн_Конверт_Должн_Click:
    MsgBox Err.Description
    Resume Exit_Кн_Конверт_Должн_Click
    End Sub

и соответственно модуль прописал, то который написан, что заработало.

Ругается
 DoCmd.RunMacro "МакроРазвернуть.ВосстановитьОкно"

создал ему оба макроса, пишет что
"Невозможно открыть или выполнить макрос "МакроРазвернуть", так как он не действителен.

Я опять в тупике-(

P.S.: если оставляю строчку
Reports(rpt).Printer.Duplex = acPRDPVertical 
как в примере, ругается (rpt)
Убираю (rpt)
Reports.Printer.Duplex = acPRDPVertical 

ругается на макрос.
8 июл 21, 11:40    [22345043]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
К стати что такое - (rpt)? Он у многих встречается.

И вот сам модуль как я его вколотил
+
Sub PrintReport(rpt, copies)
Dim TotPages, x, i1, i2
'Приостанавливаем вывод на экран (не обязательно)
Application.Echo False

'Открываем первый отчет Счета Фактуры
DoCmd.OpenReport rpt, acPreview
DoCmd.Minimize
'скрываем окно отчета (не обязательно)
Reports(rpt).Visible = False
Reports(rpt).Me.Printer.Duplex = acPRDPVertical
'Включаем вывод на экран
Application.Echo True

'Проверка на наличие данных в открытом отчете (только в одном)
'т.к. подразумевается что набор зап. второго полностью аналогичен
If Reports(rpt).HasData = 0 Then
   MsgBox "Нечего печатать!!! " & vbCrLf & _
   "отчеты:" & vbCrLf & "[" & rpt & "]" & vbCrLf & _
   "не имеeт данных", vbCritical
   'переход на метку закрытия отчетов
   GoTo jsPipeLinePrintExit
End If

'Подсчет необходимых листов бумаги и установка концовки цикла
TotPages = Reports(rpt).Pages
x = TotPages
TotPages = TotPages * copies

'If MsgBox("Вставьте в принтер " & TotPages & " листов !", vbOKCancel) = vbOK Then
   'For i = 1 To x
   DoCmd.SelectObject acReport, rpt

   'печатаем со стр. i по стр. i с высоким разрешением заданное к-во копий
   DoCmd.PrintOut acAll, , , , copies, True
   'Next
'End If

jsPipeLinePrintExit:
On Error Resume Next
DoCmd.Close acReport, rpt

Exit Sub

jsPipeLinePrintErr:
Application.Echo True
MsgBox Err.Description & ""
'Debug.Print Err.Description & vbCrLf & "Ощибка №" & Err.Number
Err.Clear
Resume jsPipeLinePrintExit

End Sub
8 июл 21, 11:53    [22345059]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
К стати что такое - (rpt)?

судя по коду: Это название отчёта
8 июл 21, 14:55    [22345223]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

Попробовал вписать имя своего отчёта терь пишет "Type mismatch"
Есть ещё какие идеи???
16 июл 21, 13:09    [22348028]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Вот как сейчас выглядит код


Private Sub Кн_Конверт_Должн_Click()
On Error GoTo Err_Кн_Конверт_Должн_Click
'DoCmd.RunMacro "МакроРазвернуть.ВосстановитьОкно"
    Dim О_Увед_Конверт_Должн As Report
    Dim stDocName As String, КолСтрок
    stDocName = "О_Увед_Конверт_Должн"
    Reports(О_Увед_Конверт_Должн).Printer.Duplex = acPRDPVertical
    DoCmd.OpenReport stDocName, , , , , acViewPreview
Exit_Кн_Конверт_Должн_Click:
    Exit Sub
Err_Кн_Конверт_Должн_Click:
    MsgBox Err.Description
    Resume Exit_Кн_Конверт_Должн_Click
    End Sub


Ещё не получается создать макрос "МакроРазвернуть.ВосстановитьОкно" их нет в списке создаваемых макросов, а если тупо прописываю, то не выполняет.
16 июл 21, 13:12    [22348029]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Тема рекордсмен по просмотрам,
но не одной светлой идеи,
народ, ну помогите кто чем может,
проверю любую "безумную идею" (в пределах кода).
19 июл 21, 10:17    [22348573]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 2262
Wawan2005
Тема рекордсмен по просмотрам,
но не одной светлой идеи,
народ, ну помогите кто чем может,
проверю любую "безумную идею" (в пределах кода).

А чего вы вообще хотите?(я потерял нить ваших хотелок)
20 июл 21, 04:57    [22348861]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
DarkMan
Member

Откуда:
Сообщений: 963
Wawan2005
Да не тут то было, печатает первый лист нормально, а второй переворачивает по ВЕРТИКАЛИ, а надо по ГОРИЗОНТАЛИ.

Этой фразы я не понял . А когда Вы печатаете на принтере вручную , он нормально печатает.
В установках есть такая фигня , если выбрать Short то мой принтер печатает нормально , а ели Long , первая страница идет нормально , а вторая вверх ногами. Это так , к слову пришлось. :))

К сообщению приложен файл. Размер - 15Kb
20 июл 21, 08:17    [22348871]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
DarkMan,

В том то и фишка, пользовать программу будут дикие юзвери, и чем меньше у них возможности накосячат тем лучше, а косячат они профессионально, в следствии чего я и хочу прописывать настройки прямо в приложении, а в идеале тупо жёстко прописать, без права выбора, ибо нех.
20 июл 21, 23:28    [22349164]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 2262
Wawan2005
DarkMan,

В том то и фишка, пользовать программу будут дикие юзвери, и чем меньше у них возможности накосячат тем лучше, а косячат они профессионально, в следствии чего я и хочу прописывать настройки прямо в приложении, а в идеале тупо жёстко прописать, без права выбора, ибо нех.

Да, не забудьте, что есть разница в доступе к настройкам локального и сетевого принтера
21 июл 21, 06:28    [22349185]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
ROI,

Настройка проходит пока на локальном, Canon iP7240, всё равно не работает.
21 июл 21, 15:12    [22349414]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Подскажите пожалуйста как адаптировать данный пример под дуплек

https://docs.microsoft.com/ru-ru/office/vba/api/access.form.prtdevmode
Свойство Printer.Duplex (Доступ)
23.03.2019
Чтение занимает 2 мин

Возвращает или задает констант AcPrintDuplex, указывающее, как указанный принтер обрабатывает двуплексную печать. Для чтения и записи.

Синтаксис
выражения. Duplex

выражение Переменная, представляюная объект Принтер.

Пример
В следующем примере заданы различные параметры принтера для формы, указанной в аргументе strFormname процедуры.


Sub SetPrinter(strFormname As String) 
 
 DoCmd.OpenForm FormName:=strFormname, view:=acDesign, _ 
 datamode:=acFormEdit, windowmode:=acHidden 
 
 With Forms(form1).Printer 
 
 .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 
 .Orientation = acPRORLandscape 
 .Duplex = acPRDPVertical 
 .PaperBin = acPRBNAuto 
 .PaperSize = acPRPSLetter 
 .PrintQuality = acPRPQMedium 
 
 End With 
 
 DoCmd.Close objecttype:=acForm, objectname:=strFormname, _ 
 Save:=acSaveYes 
 
 
End Sub
21 июл 21, 16:29    [22349467]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с выводом на печать  [new]
FeelYou
Member

Откуда: Москва
Сообщений: 18
Wawan2005,

Dim CurrRep As Report
On Error Resume Next
Set CurrRep = Screen.ActiveReport
If Err.Number = 0 Then
   If Left$(CurrRep.Printer.DeviceName, 3) <> "PDF" Then
      Select Case CurrRep.Name
         Case "ФАКТУРА", "НАКЛАДНАЯ" ' и тп с ландшафтной ориентацией
            CurrRep.Printer.Duplex = acPRDPHorizontal ' 2 Double-sided printing using a horizontal page turn
         Case Else
            CurrRep.Printer.Duplex = acPRDPVertical ' 3 Double-sided printing using a vertical page turn
      End Select
   End If
   'DoCmd.OpenReport CurrRep.Name, acViewNormal
Else
   ' смена настроек доступна только для отчетов
End If


и еще было припоминаю, что на МФУ HP M426 если настройки дуплекса заданы через вэб-морду сетевого принтера, то на программное изменение на терминальном клиенте не реагировало (2008R2 + A2003 если что)
8 окт 21, 14:11    [22381218]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5      [все]
Все форумы / Microsoft Access Ответить