Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как правильно закончить работу с Excel в Access ..  [new]
Dolon
Member

Откуда: Moscow
Сообщений: 23
Суть:
Set xlsCust = CreateObject("Excel.application")
Set xlBook = xlsCust.Workbooks.add
Set xlSheet = xlBook.Worksheets(1)
.....
работа с объектами
.....
xlsCust.Application.Visible = True

Set xlsCust = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing

Вот открылся Excel -жму ctrl+del его там нет ...:); , далее закрываю его (alt+f4)
жму ctrl+del он там (отчень всё логично :); ), а когда открытий >100 все Excel в памяти весят, как сделать чтоб их небыло...
5 авг 03, 13:48    [288640]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Vsevolod V
Member

Откуда: Россия. Санкт-Петербург
Сообщений: 3194
Може так: xlsCust.Quit
5 авг 03, 13:58    [288659]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Dolon
Member

Откуда: Moscow
Сообщений: 23
xlsCust.Quit- не прошло :(; , да..а идея не плоха была..
5 авг 03, 14:06    [288675]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
Вот кусок из Хелпа.
ДоЭвенты добавлены из-за глючности некоторых машин - на них ХЛ вызывает ошибку при закрытии...

' Save the sheet
ExcelSheet.SaveAs tFile

DoEvents

' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit

DoEvents

' Release the object variable.
Set ExcelSheet = Nothing

DoEvents

'Open file
tmp = Shell("Excel.EXE " + Chr$(34) + tFile + Chr$(34), vbMaximizedFocus)
5 авг 03, 14:06    [288676]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Dolon
Member

Откуда: Moscow
Сообщений: 23
всёравно висит его отстойшество.!
5 авг 03, 14:20    [288699]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Hummer
Member

Откуда:
Сообщений: 2583
' Объявление объектов Excel

Dim xl As New Excel.Application
Dim xl_wb As New Excel.Workbook
Dim xl_sh As New Excel.Worksheet
'
Присвоение значений Excel
Set xl = CreateObject("Excel.Application")
Set xl_wb = xl.Workbooks.Open("имя файла") ' или создаём новый
Set xl_sh = xl_wb.Worksheets(1)
'
выполняем какие-нибудь действия
xl_wb.Save
xl.Quit

Set xl_sh = Nothing
Set xl_wb = Nothing
Set xl = Nothing


Вот так должно работать вроде. Ну и при выходе из процедуры тоже все объекты должны обнуляться...
5 авг 03, 14:38    [288732]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Dolon
Member

Откуда: Moscow
Сообщений: 23
Да такой вариант прокатил, УРА, но мне нужно чтоб пользователь посмотрел полученные данные потом закрыл excel и дестой его из памяти.. а в твоём примере мы его как только открываем файл сразу дестрой, как то нады перехватывать событие закрытие excel а потом дестрой !?
5 авг 03, 14:51    [288764]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Шкуренко Александр
Guest
2 Dolon
Все таки у тебя где-то болтается ссылка на объект Excel.
Попробуй создать новую базу и протесть этот код

Sub TestExcel()
Dim xlApp As New Excel.Application
xlApp.Workbooks.Add
xlApp.Visible = True
Set xlApp = Nothing
End Sub
Только не забудь ссылку в References на Excel

2 Hammer
Зачем используешь New, если потом пользуешь CreateObject
5 авг 03, 14:52    [288770]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Шкуренко Александр
Guest
Ну а если тебе понадибилось держать ссылку на Excel и его события тогда WithEvents тебя спасет
5 авг 03, 14:56    [288777]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
Dolon
Member

Откуда: Moscow
Сообщений: 23
Шкуренко Александр: +!+ Да в таком виде работает... тогда 5 баллов в точку..
Тема закрыта см. предыдущее сообщение.(пшел искать).
5 авг 03, 14:59    [288788]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как правильно закончить работу с Excel в Access ..  [new]
kah2
Member

Откуда: Москва
Сообщений: 53
Alexus12
Вот кусок из Хелпа.
ДоЭвенты добавлены из-за глючности некоторых машин - на них ХЛ вызывает ошибку при закрытии...

' Save the sheet
ExcelSheet.SaveAs tFile

DoEvents

' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit

DoEvents

' Release the object variable.
Set ExcelSheet = Nothing

DoEvents

'Open file
tmp = Shell("Excel.EXE " + Chr$(34) + tFile + Chr$(34), vbMaximizedFocus)



DoEvents на компе юзера не помогает

objXL.Application.ActiveWorkbook.Save
DoEvents
objXL.Application.Quit

"RunTime Error
Automation error
Сбой при удаленном вызове процедуры" - на строке Save

хотя на моем компе без проблем
Есть еще способ решения проблемы?
16 ноя 06, 15:09    [3409858]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно закончить работу с Excel в Access ..  [new]
kah2
Member

Откуда: Москва
Сообщений: 53
Дотукал сам:
при определении objXL нужно было вместо

Set objXL = GetObject(file_name)

писать

Set objXL = CreateObject("Excel.Application")
objXL.Workbooks.Open file_name

и все пашет как надо
17 ноя 06, 12:09    [3414313]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить