|
50 Кб. |
|
| Экспорт в ворд из запроса.
Проблема.
Запускаю тест
Public Sub tstword()
puti = "E:\CrmSrv\Letters\Outbox\2011\2172.doc"
PrintInvoiceWithWord (57334)
End Sub
Один раз работает нормально.
Сразу запускаю второй раз - ошибка -> cм. вложение.
Закрываю.
Запускаю снова - ошибки нет. и т.д.
Где собака?
Через раз срабатывает ошибка | |
|
| |
|
|
|
| а он не может быть занять первым запуском, когда ты запускаешь во второй раз
вот второй раз ошибка, ты сбрасываешь всё и он запускается в третий
может его закрыть как-то надо после выполнения | |
|
| |
|
|
|
|
| А как проверить?
И чего это он занят?
Как принудительно освободить?
Раньше такого не было. вроде всегда так делал...
вот кусок закрытия
If objWord.Application.Documents.Count > 0 Then
objWord.Visible = True
objWord.Activate
objWord.WindowState = 1
Else
objWord.Application.Quit
End If
Set objWord = Nothing
Err.Clear
|
| |
|
| |
|
|
|
| ну не знаю....
я с экселем поработал, допустим, и
wr.Close SaveChanges:=True: xl.Quit
|
а уже потом
Set sh = Nothing: Set wr = Nothing: Set xl = Nothing
|
может и излишества, но вроде жалоб от пользователей не было (триждытьфу)
може и с вордом так надо?
иль тябе его открытым надо оставить?
тогда может шеллом потом открыть документ?
короче я путаюсь в показаниях?! | |
|
| |
|
|
|
| когда подвисает Word - а сам файл был закрыт - при открытии этого же файла он орет про использование его другим процессом
Диспетчер задач и точно висит Word - лапками удаляем - все ОК открывается
я к тому что возможно оставется тот временный файл который показывает его использование или как-то так | |
|
| |
|
|
|
| Диспетчером, естественно, проверял. Нет там ничего.
Открытым оставлять не надо!
Закрыть, сохранить и открыть опенофисом. f_OpenFile00 (puti)
И нафинги все есть.
objWord.Documents.Save NoPrompt:=False, _
OriginalFormat:=wdOriginalDocumentFormat
objWord.Documents.Close
Err.Clear
If objWord.Application.Documents.Count > 0 Then
objWord.Visible = True
objWord.Activate
objWord.WindowState = 1
Else
objWord.Application.Quit
End If
Set objWord = Nothing
Err.Clear
f_OpenFile00 (puti)
End Sub
вот так примерно. Err.clear я уж потом вставил. Наверное, лишнее
|
| |
|
| |
|
|
|
| +1 ххх.Quit
Я ещё убивал процесс в диспетчере (автоматом, пулемётом , гаранатомётом) | |
|
| |
|
|
|
|
| какая разница, ведь основной принцип - против толпы любая ошибка бессильна | |
|
| |
|
|
|
|
|
Err.Clear
If objWord.Application.Documents.Count > 0 Then
objWord.Visible = True
objWord.Activate
objWord.WindowState = 1
Else
objWord.Application.Quit
End If
если ошибка сброшена и документ не закрыт(count>0)
событие objWord.Application.Quit не происходит
|
| |
|
| |
|
|
|
| Дак я ж писал
Err.clear я уж потом вставил. Наверное, лишнее
|
| |
|
| |
|
|
|
| >Так и не понял, почему при первом запуске работало, а при втором нет.
поведение такое же как здесь:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=845463&msg=10547223
Причина ошибки - вызов метода объекта без прямой ссылки на объект.
Проверьте весь код, может встретите подобное. | |
|
| |
|
|
|
|
| Поскипал.
Ничего существенного. Сижу, пью кофе, читаю ветку. | |
|
| |