powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблемы с OLE Automation
13 сообщений из 13, страница 1 из 1
проблемы с OLE Automation
    #32709638
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Не сталкивался ли кто с такой проблемой:
excrep=create("Excel.Application")
excrep.Visible=.t.
excrep.DisplayAlerts=.f.
excrep.WorkBooks.add(Alltrim(sys(5))+Alltrim(curdir())+"excelblank.xls")
excrep.ActiveWorkBook.SaveAs(Alltrim(sys(5))+Alltrim(curdir())+'tmp.xls')
excrep.Run('Begin')
excrep.ActiveWorkBook.Save
excrep.ActiveWorkBook.Close
excrep.Quit
RELEASE excrep

Т.е. из фокса создаю Excel-евский документ, запускаю в нем макро, жду когда отработает, сохраняю, закрываю. Все ничего, только после отработки в памяти остается процесс Excel.exe. Его приходится закрывать в рукопашную (в nt - через диспетчер задач, в 9x- перегружаться только), но данные в нем отрабатываются нормально. Если закомментировать вызов макро, то процесс закрывается нормально. Если открыть документ и ручками запустить макро то тоже все хорощо.
Заранее благодарен за предположения\комментарии.
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32709704
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня все почти также и работает
только quit я не вызываю и visible не делаю
а что в макросе?
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32709707
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и кстате если книга уже была я ипользую метод Open а не add
а так не совсем понятно какой макрос вы вызываете
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710117
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй убрать
excrep.ActiveWorkBook.Close

перед
excrep.Quit


Было замечено, что разные версии Экселя работают неодинаково: для 7-го перед его закрытием нужно было закрывать ActiveWorkBook, а вот для 2000-го - не нужно.

Впрочем, может, я чего-то путаю. ;-)
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710158
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за участие. Макрос довольно сложный он обрабатывает некоторые данные (используется DBF и не только, посредством Microsoft.Jet.OLEDB.4.0 запросов) и оформляет отчет.
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710214
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрал Visible, Quit - все равно процесс остается висеть. Манипуляции с ActiveWorkbook.Close не помогают.
Интересная особенность - если я запускаю макрос вручную то он отрабатвает и я вижу готовый отчет. А если программно - то все нормально отрабатывает но в конце, после выполнения последнего оператора макрос как-бы подвисает. Если сохранить и закрыть принудительно книгу то отчет можно снова открыт и он выглядит нормально. Впечатление такое что не стыкуется тот момент, что макрос уже отработал.
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710247
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так всё таки откуда макрос берется
почему название таблицы не указывается
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710284
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макрос уже в книге находится она используется как шаблон. Макро находится в модуле книги. т.е. модуль добавлен в VB Project.
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710421
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы по поводу закрытия книги и закрытия экселя. Если не делать ни того ни другого то процесс не виснет. пользователю выдается окно с документом, которое он должен закрыть вручную. А автоматом закрыть не получается - остается процесс Excel.exe.
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710422
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
довольно трудно решить такого рода проблемму на расстоянии
но все же возможно
1 макрос по какой либо причине (например пытаеться открыть таблицу уже открытую в фоксе ) не завершает работу нормально и повисает
ты закрываешь таблицу команды типа quit игнорируються потому что макрос висит
в итоге у тебя на копьютере остаеться висеть ексель с макросом
2 обычно я указываю название листа при вызове макроса
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32710442
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицы все закрыты - перед Экселем ставлю close table all. А по поводу имени листа - макро относится не к листу а к книге. Т.е. в VBAProject добавлен моуль с макросами.
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32711395
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если прямо из макро сделать ActiveWorkbook.Save, ActiveWorkbook.Close и
Application.Quit?
Кстати там какие-то параметры имеются - посмотри хелп, может надо их указать
для этих методов?

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
проблемы с OLE Automation
    #32712029
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из макро пробовал - результат тот-же, но происходит это только, если я запускаю макрос программно, а потом пытаюсь программно закрыть книгу. Проблема не в том, ято макро не отрабатывает или не сохраняется документ - он не закрывается нормально автоматом (вернее делает вид, что закрылся с экрана исчезает, но остается в памяти и итоговый документ остается занят.). Попробую проверить на другой машине (может быть софт стоящий на моей создает проблемы).
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблемы с OLE Automation
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]