Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Печать отчета с двух сторон листа.(2003)
 
 автор: awstr   (06.08.2007 в 19:54)   личное сообщение
 
 

Подскажите, пожалуйста, что можно сделать в следующей ситуации:

Необходимо печатать отчет на двух сторонах листа. Имеется лазерный принтер НР 1320 с возможностью двухсторонней печати (в свойствах данная функция активирована). При попытке распечатать отчет командой из формы:

stDocName = "Otchet-A"
DoCmd.OpenReport stDocName, acNormal

отчет печатается на двух листах (с одной стороны каждого листа). Если, к примеру, из этой же базы распечатать какой-либо открытый запрос, то печать идёт, как и надо - с двух сторон листа. Пробовал на двух компьютерах с аналогичными принтерами.

  Ответить  
 
 автор: игорьК   (07.08.2007 в 20:42)   личное сообщение
 
 

Private Sub Кнопка0_Click()
DoCmd.OpenReport "Otchet-A", acViewPreview
Reports(Otchet-A).Printer.Duplex = acPRDPVertical
DoCmd.OpenReport "Otchet-A", acViewNormal
End Sub

  Ответить  
 
 автор: awstr   (08.08.2007 в 06:31)   личное сообщение
 
 

Спасибо!
А можно ли эту проблему решить без использования предварительного просмотра?
Дело в том, что по нажатию кнопки печатается более 30 видов двусторонних протоколов на каждую запись, и очень неудобно, если всё это будет постоянно выскакивать.

  Ответить  
 
 автор: Konst   (08.08.2007 в 09:27)   личное сообщение
 
 

Дык, это не работает!!!!!!!

DoCmd.OpenReport "Otchet-A", acViewPreview
Reports("Otchet-A").Printer.Duplex = acPRDPVertical
DoCmd.OpenReport "Otchet-A", acViewNormal

  Ответить  
 
 автор: Explorer   (08.08.2007 в 10:04)   личное сообщение
 
 

кхе-кхе...

что именно ЭТО у вас не работает и как именно?

  Ответить  
 
 автор: ИгорьК   (08.08.2007 в 12:47)   личное сообщение
 
 

>Дык, это не работает!!!!!!!
Это работает начиная с акса 2002.
А отчёт также называется?
А принтер поддерживает двухстороннюю печать?

>А можно ли эту проблему решить без использования предварительного просмотра?
По моему нет.

  Ответить  
 
 автор: awstr   (08.08.2007 в 17:38)   личное сообщение
 
 

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

  Ответить  
 
 автор: Explorer   (08.08.2007 в 17:46)   личное сообщение
 
 

попробуйте обратиться к статье в Help'e

search criteria: Duplex

  Ответить  
 
 автор: awstr   (08.08.2007 в 17:56)   личное сообщение
 
 

К хелпу обращался сразу же, но как пример, который там приводится, применить в моём случае ума не приложу.

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

  Ответить  
 
 автор: Explorer   (08.08.2007 в 18:43)   личное сообщение
 
 

ИМХО заменить форму на отчет и выбросить лишние установки. разве не помогает?

  Ответить  
 
 автор: awstr   (08.08.2007 в 19:15)   личное сообщение
 
 

Сколько ни пытался, у меня ничего хорошего не вышло.

  Ответить  
 
 автор: Explorer   (08.08.2007 в 20:07)   личное сообщение
 
 

хм... на любых компьютерах на любых двусторонних принтерах?

  Ответить  
 
 автор: awstr   (08.08.2007 в 20:35)   личное сообщение
 
 

Хотелось бы видеть, что-нибудь по существу вопроса, а не обсуждать любые принтеры.

  Ответить  
 
 автор: Explorer   (09.08.2007 в 09:32)   личное сообщение
 
 

ну, если по существу вопроса, то у меня все печатает...

на двух сторонах, на всех двухсторонних принтерах, с разных машин...

  Ответить  
 
 автор: Егор   (09.08.2007 в 10:15)   личное сообщение
 
 

dim st as string
...
st = app.Dialogs(wdDialogFilePrint).Display 'появится диалоговое окно печати документа
If st = "-1" Then
печать документа
else
msgbox "не удалось напечатать"
endif
Кстаит, ти вопросы поднимались неодонократно на этом форуме, введите в поиск и посмотрите может еще че нить интересное найдете

  Ответить  
 
 автор: awstr   (09.08.2007 в 22:12)   личное сообщение
 
 

Это всё смотрелось первым делом. Но, к сожалению, мне что-то так и не попалось решение позволяющие печатать двусторонку потоком (без предпросмотра или каких либо промежуточных форм). Буду завтра опять пробовать применять предложенное вами решение.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList