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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Прервать печать отчета
 
 автор: alexkn   (25.05.2009 в 20:54)   личное сообщение
 
 

Есть большой отчет, основанный на массиве отобранных записей,каждой записи соответствует при печати лист А4. Листов много, и если вдруг при печати обнаружится ошибка на первых листах (например неправильная дата или что иное), то необходимо прервать печать, чтобы попусту бумагу не тратить. Понятно, что надо обработать событие "Форматирование" секции "Область данных" отчета. Но как это сделать?

  Ответить  
 
 автор: osmor   (26.05.2009 в 09:16)   личное сообщение
 
 

Попробуйте эту процедуру
http://hiprog.com/index.php?option=com_content&task=view&id=356
и
вот такой код

strComputer = "."
' где  "HP QuietJet" - имя принтера

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'HP QuietJet'")

For Each objPrinter in colInstalledPrinters
    objPrinter.CancelAllJobs()
Next

  Ответить  
 
 автор: alexkn   (26.05.2009 в 20:01)   личное сообщение
 
 

Я не знаю заранее имя принтера. Как обработать дефолтный? И что означают константы типа Const VK_ESCAPE = &H1B. Где можно посмотреть их список(справочник)?

  Ответить  
 
 автор: osmor   (26.05.2009 в 21:09)   личное сообщение
 
 

здесь можно про принтеры посмотреть
http://hiprog.com/index.php?option=com_content&task=view&id=464
как дефолтовый определить не помню, с помощью WMI точно можно.
Если не найдете пишите, поищу у себя

Const VK_ESCAPE = &H1B



это константы используемые функциями win32 API, VBA про них ничего не знает и приходится их прописывать в ручную
http://hiprog.com/index.php?option=com_content&task=view&id=714
http://hiprog.com/index.php?option=com_content&task=view&id=477

  Ответить  
 
 автор: Lukas   (26.05.2009 в 21:18)   личное сообщение
 
 

Если в системе установлен принтер по умолчанию, его имя можно прочитать так: (с А2002 и выше)
?Application.Printer.DeviceName

  Ответить  
 
 автор: alexkn   (26.05.2009 в 22:21)   личное сообщение
 
 

Всем спасибо!

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