Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2012, 13:30   #1
xanderg
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 34
По умолчанию Зависания при распечатки из приложения ms access через acrobat disteller

Добрый день!
Давно мучает следующая проблема. Периодически при попытки распечатыки из приложения аксесс счета в пдф файл через дистиллер приложение зависает, приходится закрывать через диспетчера задач. Естесственно, никакой счет не печатается, принтер по умолчанию остается на акробат дистиллере, т.к. процедура до конца не выполняется.
Говорят, частота зависаний напрягающая. Хотя иногда печатает хоть 20 документов подряд.
С чем это может быть связано?
xanderg вне форума Ответить с цитированием
Старый 13.08.2012, 13:33   #2
xanderg
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 34
По умолчанию

Public Sub PDF(index As Integer, stDocName As String)
Dim stDocName2 As String, LLen, k, lk
Dim rst As DAO.Recordset
Dim dbs As DAO.Database
Dim sql As String, strCID, email, d, mess
Dim rstCompany As DAO.Recordset, cID2 As String, cID As String
Dim i, strmessage As String
Dim dr As aht_tagDeviceRec
Static atagDevices() As aht_tagDeviceRec
d = getTMPFolder
Set dbs = CurrentDb


k = 1
'Отправка по e-mail
Select Case index
Case 1, 2
CompanyID = Forms![СчетаФактуры]![Рег.№ Заказчик]
Case 3
CompanyID = Forms![Счета]![Рег.№ Заказчик]
End Select

cID2 = CompanyID

Set rst = dbs.OpenRecordset("EmailOption", dbOpenDynaset)
sql = "SELECT Company.[БухгалтерEMail] as SendTo FROM Company WHERE (((Company.CompanyID)=" + cID2 + ") and " _
& "((Company.[БухгалтерEMail]) Is Not Null) );"

Set rstCompany = dbs.OpenRecordset(sql, dbOpenDynaset)


Select Case index
Case 1, 2

Case 3
stDocName2 = "Счет"

End Select


'Список доступных принтеров
If ahtGetDefaultPrinter(dr) Then
For i = 1 To ahtGetPrinterList(atagDevices())
If atagDevices(i).drDeviceName = "Acrobat Distiller" Then
ChangeToAcrobat
DoCmd.OpenReport stDocName, acViewNormal

OpenDialog
ResetDefaultPrinter
DoCmd.Close acReport, stDocName
d = d + stDocName2 + ".pdf"
Name d As FileNamePDF

Dim m As Message, s As String, res As Long, nv
nv = InputBox("Адрес отправителя:", "e-Mail", rst!MailFrom)
If nv = "" Then nv = rst!MailFrom
m.strFrom = Nz(nv, "")
' m.strFrom = Nz(rst!MailFrom, "")
m.strTo = Nz(rstCompany!SendTo, "")
m.strReplyTo = Nz(nv, "")
m.strSubj = Nz(rst!MessageSubject, "")
m.strBody = Nz(mess, "")
m.strBodyPTHTML = Nz(mess, "")
m.strHdrTransferEncoding = ""
m.strTransferEncoding = ""
m.strContentType = "text/plain"
m.strFileAttach = d
m.strExtraHeaders = ""
m.iPriority = 0
m.strOrganization = ""
If rst!authentication Then
res = SendAuthMsg(AddressOf Progress, m, Nz(rst!smtp, ""), rst!User, rst!pass)
Else
res = SendMsg(AddressOf Progress, m, Nz(rst!smtp, ""))
End If
If res = 0 Then
MsgBox "Сообщение отправлено."
Else
MsgBox "Ошибка отправления. - " & res
End If
GoTo 1
Else
End If
Next i
MsgBox "Необходимо установить принтер 'Acrobat Distiller'!", vbCritical
GoTo 1
End If
End If

Case 3
'stDocName2 = "Счет"
If ahtGetDefaultPrinter(dr) Then
For i = 1 To ahtGetPrinterList(atagDevices())
If atagDevices(i).drDeviceName = "Acrobat Distiller" Then
ChangeToAcrobat
DoCmd.OpenReport stDocName, acViewNormal

'OpenDialog
ResetDefaultPrinter
DoCmd.Close acReport, stDocName
'd = d + stDocName2 + ".pdf"
'Name d As FileNamePDF

GoTo 1
Else
End If
Next i
MsgBox "Необходимо установить принтер 'Acrobat Distiller'!", vbCritical
GoTo 1
End If


End Select



1:

End Sub

зависает на выделенной строке

Последний раз редактировалось xanderg; 13.08.2012 в 13:34. Причина: правка
xanderg вне форума Ответить с цитированием
Старый 13.08.2012, 15:20   #3
just_a_coder
 
Регистрация: 13.08.2012
Сообщений: 3
По умолчанию

А на настоящий принтер нормально печатается ?
just_a_coder вне форума Ответить с цитированием
Старый 13.08.2012, 15:53   #4
xanderg
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 34
По умолчанию

честно говоря, этот отчет на обычный принтер печатать не требовалось
xanderg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спонтанные зависания при EnumWindows, как избавиться, и что использовать Send/PostMessage Человек_Борща Win Api 6 21.03.2012 12:47
зависания при использовании хука на мышь like_cloud Win Api 2 08.12.2011 20:08
Зависания при подключении alexprey Работа с сетью в Delphi 1 31.01.2011 21:55
Добавление записи через список в связанную таблицу(при связи с Access) megaten БД в Delphi 5 17.05.2009 15:57
Как избавиться от зависания приложения при выполнении длительных операциях Des Общие вопросы Delphi 15 30.04.2009 02:05