LEADERSOFT.ru
Разработка на заказ программ и сайтов
Разработка
Заказ программы
Прайс-лист
Техническое задание
Проектная документация
Наши клиенты
Реклама и продвижение
Магазин
Перейти в магазин
Новинки магазина
Бизнес программы
Финансовый учет
Документооборот
Исходные коды
Интернет решения
Обучение
Перейти в раздел
Форумы по разработке
Примеры на Access
Рассылка статей
Магазин IT литературы
Блог
Все статьи
Microsoft Access (VBA)
Microsoft Access (Проекты)
Microsoft ASP.NET
Сервисы Google
Технические задания
Новости IT технологий
Сервисы
Форумы разработчика
Контакты
О компании
Регистрация на сайте
Подписка на новости по Email
Сообщество Google+
Подписка subscribe.ru
Новости в формате Атом
Загрузить
Загрузить каталог программ
Форумы по информационным технологиям
Начало
Forums
Регистрация
|
Вход
Forums
Обновлено ::
05 февраля 2005
Форумы
Поиск
Список форумов
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Проблемы ...
Тема: Проблемы при выводе на печать
15.06.2007 21:02:17
All
4316 сообщения
Тема: Проблемы при выводе на печать
Пример la_automat 2 очень помогает, но появились другие проблемы.
1. Я вставил строку "app.PrintOut" распечатки документа Word между
"app.ActiveDocument.SaveAs strDOC"и срокой "app.Quit"
При этом заремировал 4 строки
With Me.myWordDoc
.HyperlinkAddress = strDOC ' Создаем ссылку
.Visible = True ' Отображаем элемент
End With
Так как VBA не понял что есть myWordDoc (может не подключил библиотеку?) При запуске выдает сообщение Word "Печать еще не закончена. Закрытие Word приведет к удалению всех ожидающих печати заданий. Закрыть Word?" При ответе Да ничего не печатается, но файл записывается, при ответе Нет происходит и печать и запись файла. Но что интересно, при повторном запуске процедуры происходит следующее: Access 2000 выдает сообщение: "Нельзя сохранить данный файл, поскольку он используется другим процессом. (С:WINDOWS\Рабочий стол\Заключение.doc)" А после этого сообщение от Word "Сохранить изменения в документе Документ1?" (и такие сообщения выводятся, накладываясь друг на друга последовательно нумеруя файлы Документ, столько раз, сколько запускаю. Но у меня же файл Заключение.doc! При этом ничего не печатается. Если вообще перегрузить машину то опять удается получить однократную печать документа.
Что делать?
2. Мне необходимо собрать строковую переменную, по значениям нескольких полей в форме. Но эти поля содержат значения полученные на основании списка, источником строк которого, является запрос из другой таблицы. В этой таблице хранятся текстовые значения и соответствующие им значения счетчика (один присоединенный столбец ширина, которого равна нулю). Получается так: что когда я опрашиваю значение поля, то получаю число (значение счетчика), хотя визуально в списке формы присутствует текст, а когда опрашиваю поле со свойством .Text, то получаю строковое значение. Все бы ничего, но необходимо для последнего устанвливать фокус. Если полей много и форма с вкладками то форма мигает и дергается, плюс это занимает время. Как это обойти? Может брать числовое значение из поля формы и по нему искать в таблице используя запрос, а затем смотреть какому текстовому значению это соответствует или использовать Find посредством Recordset и искать таким же способом? Что быстрее и как лучше?
P.S. Клиенты автоматизации
Автор:
Евгений
от 0:00:00
Источник ...
15.06.2007 21:02:17
Николай3
48 сообщения
RE: Проблемы при выводе на печать
Понятно, что это происходит из-за того, что еще не началась печать.
Поэтому можно сделать так:
1.способ
Использовать функцию WaitForPrinterChange
2. В цикле проверять задания принтера
Пример по 1:
Public Declare Function WaitForPrinterChange Lib "winspool.drv" (ByVal hPrinter As Long, ByVal flags As Long) As Long
Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As Long
Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Public Const PRINTER_CHANGE_ADD_JOB = &H100
Public Const PRINTER_CHANGE_JOB = &HFF00
Public Const PRINTER_CHANGE_WRITE_JOB = &H800
Sub PP()
Dim hPrinter As Long
Dim NamePrinter As String
NamePrinter = "HP DeskJet 610C"
OpenPrinter NamePrinter, hPrinter, 0&
Application.PrintOut
WaitForPrinterChange hPrinter, &H400
ClosePrinter hPrinter
End Sub
имя принтера можно узнать из Application.ActivePrinter (или через EnumPrinters и комп.)
Некоторый недостаток - чисто этого примера - возможные сбои при неправильной работе принтера.
Так что надо бы доработать при использовании
P.S. Клиенты автоматизации
Автор:
Николай
от 10.04.2002 18:30:35
Источник ...
15.06.2007 21:02:17
Николай3
48 сообщения
RE: Проблемы при выводе на печать
по второму вопросу:
У ComboBox есть свойство Column
Например Combo1.Column(1) - значение второго столбца
P.S. Клиенты автоматизации
Автор:
Николай
от 10.04.2002 19:02:45
Источник ...
15.06.2007 21:02:17
Евгений5
15 сообщения
RE: Проблемы при выводе на печать
Николай, огромное спасибо, что откликнулись.
Дело в том, что я начинающий пользователь и много еще не понимаю.
Вопрос теперь в том, куда вставить декларирование функций WaitForPrinterChange,OpenPrinter и декларирование констант. Я попробовал это сделать в коде формы из которой хочу проводить печать, но получил ошибку "Constant,... and Declare statements not allowed as Pablic members of object modules."
Помогите разобраться теперь и с этим.
Заранее спасибо.
sea@im.net.ua Евгений
Сообщите свой E-mail.
P.S. Клиенты автоматизации
Автор:
Евгений
от 12.04.2002 22:26:34
Источник ...
15.06.2007 21:02:18
Николай3
48 сообщения
RE: Проблемы при выводе на печать
В модуле формы пишите Private ..
В просто модулях (мод. классов) можете использовать Private (тогда функция,константа, переменная и др. будут доступны только внутри этого модуля) или Public..(соответственно будут доступны из других модулей, в т.ч. из форм)
Значения констант можно посмотреть любым APIViewer
здесь используется
Const PRINTER_CHANGE_DELETE_JOB = &H400
Как правило, значения флагов могут составляться из комбинации нескольких констант (CONST1 Or CONST2 ....)
Вообще эта функция (WaitForPrinterChange) оставлена для совместимости с более ранними версиями Windows, и Microsoft рекомендует использовать другие, но это такой ....(зато больше возможностей)
e-mail указан -"конвертик"
P.S. Клиенты автоматизации
Автор:
Николай
от 13.04.2002 4:30:19
Источник ...
Страница 1 из 1
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Проблемы ...
Одноуровневый вид
Древовидная структура
Самый старый из новых
Новейший из старых
Поиск
Список форумов
Начало
|
Forums
Copyright 2002-2016 Leadersoft.ru
::
Leadersoft
::
Соглашение о безопасности
::
Условия использования