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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Через раз срабатывает ошибка
 
 автор: Дядя Федор   (22.04.2011 в 10:59)   личное сообщение
50 Кб.
 
 

Экспорт в ворд из запроса.
Проблема.
Запускаю тест

Public Sub tstword()
puti = "E:\CrmSrv\Letters\Outbox\2011\2172.doc"
PrintInvoiceWithWord (57334)
End Sub

Один раз работает нормально.
Сразу запускаю второй раз - ошибка -> cм. вложение.
Закрываю.
Запускаю снова - ошибки нет. и т.д.
Где собака?

Через раз срабатывает ошибка

  Ответить  
 
 автор: kot_k_k   (22.04.2011 в 11:02)   личное сообщение
 
 

а он не может быть занять первым запуском, когда ты запускаешь во второй раз
вот второй раз ошибка, ты сбрасываешь всё и он запускается в третий
может его закрыть как-то надо после выполнения

  Ответить  
 
 автор: Силblч   (22.04.2011 в 11:13)   личное сообщение
 
 

+1

  Ответить  
 
 автор: Дядя Федор   (22.04.2011 в 11:39)   личное сообщение
 
 

А как проверить?
И чего это он занят?
Как принудительно освободить?

Раньше такого не было. вроде всегда так делал...
вот кусок закрытия
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

  Ответить  
 
 автор: Силblч   (22.04.2011 в 11:59)   личное сообщение
 
 

ну не знаю....
я с экселем поработал, допустим, и

wr.Close SaveChanges:=True: xl.Quit

а уже потом

Set sh = Nothing:    Set wr = Nothing:    Set xl = Nothing

может и излишества, но вроде жалоб от пользователей не было (триждытьфу)
може и с вордом так надо?

иль тябе его открытым надо оставить?
тогда может шеллом потом открыть документ?
короче я путаюсь в показаниях?!

  Ответить  
 
 автор: kot_k_k   (22.04.2011 в 12:07)   личное сообщение
 
 

когда подвисает Word - а сам файл был закрыт - при открытии этого же файла он орет про использование его другим процессом
Диспетчер задач и точно висит Word - лапками удаляем - все ОК открывается

я к тому что возможно оставется тот временный файл который показывает его использование или как-то так

  Ответить  
 
 автор: Дядя Федор   (22.04.2011 в 12:32)   личное сообщение
 
 

Диспетчером, естественно, проверял. Нет там ничего.
Открытым оставлять не надо!
Закрыть, сохранить и открыть опенофисом. 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  я уж потом вставил. Наверное, лишнее

  Ответить  
 
 автор: час   (22.04.2011 в 15:41)   личное сообщение
 
 

+1 ххх.Quit
Я ещё убивал процесс в диспетчере (автоматом, пулемётом , гаранатомётом)

  Ответить  
 
 автор: Дядя Федор   (22.04.2011 в 16:53)   личное сообщение
 
 

Почти все разъяснилось. Ошибочка была в программе.
Затыкалась при втором запуске вот здесь
.AutoFormat Format:=wdTableFormatProfessional
короче, поменял принципы, подходы, текст модуля и т.п.
Теперь все ОК.

Почти. Так и не понял, почему при первом запуске работало, а при втором нет.
Думаю, пока тему можно закрывать.
ПС. Особенность задачи - есть поля мемо.
При текстовых и числовых ошибок не возникало вовсе .

  Ответить  
 
 автор: Силblч   (22.04.2011 в 16:54)   личное сообщение
 
 

какая разница, ведь основной принцип - против толпы любая ошибка бессильна

  Ответить  
 
 автор: Дядя Федор   (22.04.2011 в 16:55)   личное сообщение
 
 

да это хуже, чем преступление. это ОШИБКА. Однако, задача решена. Все довольны.

  Ответить  
 
 автор: shanemac51   (22.04.2011 в 17:09)   личное сообщение
 
 


    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 не происходит

  Ответить  
 
 автор: Дядя Федор   (23.04.2011 в 16:42)   личное сообщение
 
 

Дак я ж писал


Err.clear я уж потом вставил. Наверное, лишнее

  Ответить  
 
 автор: Bellerofont   (24.04.2011 в 00:06)   личное сообщение
 
 

>Так и не понял, почему при первом запуске работало, а при втором нет.
поведение такое же как здесь:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=845463&msg=10547223
Причина ошибки - вызов метода объекта без прямой ссылки на объект.
Проверьте весь код, может встретите подобное.

  Ответить  
 
 автор: Дядя Федор   (24.04.2011 в 17:51)   личное сообщение
 
 

спасибо

  Ответить  
 
 автор: Йожык   (27.04.2011 в 16:46)   личное сообщение
 
 

Поскипал.
Ничего существенного. Сижу, пью кофе, читаю ветку.

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