Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Закрытие приложения / 8 сообщений из 8, страница 1 из 1
29.08.2005, 17:02:08
    #33239431
Serg841
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
Работаю с другим приложением (Excel)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim xlApp As Object     
Dim xlWkb As Object     

Set xlApp = GetObject("", "Excel.Application")
    
    Set xlWkb = xlApp.workbooks.Open("filename")

...


Set xlApp = Nothing

Но приложение остается в памяти.
Как выгрузить его из памяти?
...
Рейтинг: 0 / 0
29.08.2005, 17:04:51
    #33239443
LeonM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
Set xlApp = Nothing "убило" ссылку в программе, о чем внешнее приложение уже никогда не узнает. Quit!
...
Рейтинг: 0 / 0
29.08.2005, 17:44:00
    #33239575
Serg841
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
LeonMSet xlApp = Nothing "убило" ссылку в программе, о чем внешнее приложение уже никогда не узнает. Quit!
написал в коде xlApp.Quit
Ничего не изменилось приложение Excel.exe по-прежнему висит в процессах в диспетчере задач Windows.
...
Рейтинг: 0 / 0
29.08.2005, 17:57:16
    #33239620
LeonM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
1. Это ранее запущеный процесс (наиболее вероятно)
2. Закройте рабочую книгу и после этого завершите приложение (возможно, Вы не видите вопрос о сохранении файла)
3. "Убейте" ссылку на Excel.Application
...
Рейтинг: 0 / 0
30.08.2005, 10:32:04
    #33240325
Serg841
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
Проблема оказалась не в том, что я думал. При работе только с книгой все работает и приложение из памяти выгружается. Но при выполнение следующего фрагмента кода, где необходимо данные из книги Excel поместить в таблицу в Access, приложение Excel все равно остается в памяти.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Dim xlApp As Object     
Dim xlWkb As Object     

smdbname = "D:\proba.mdb"
f_name = "Dan_009"

Set conn = CreateObject("ADODB.Connection")
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & smdbname & ";User ID=Admin;Password=;Extended Properties=")

Set xlApp = GetObject("", "Excel.Application")
Set xlWkb = xlApp.workbooks.Open("D:\Dan_009.xls")

For i =  1  To xlWkb.sheets.Count
    If InStr(LCase(xlWkb.sheets(i).Name), LCase("prep")) <>  0  Then
        xlname = xlWkb.sheets(i).Name
    End If
Next i

On Error Resume Next
   conn.Execute "DELETE * FROM " & f_name
   conn.Execute "create table " & f_name & " (summa double, prep char (255), klass char(255)," & _
             "uid double, ne_l char(255), drug char(255), form char(255), id_divider double)"

SQL = "INSERT INTO " & f_name & " IN '" & smdbname & "' " & _
      "SELECT summa,prep,klass,uid,ne_l,drug,form,id_divider " & _
      "FROM [" & xlname & "$] IN 'D:\Dan_009.xls'[EXCEL 8.0;HDR=yes;IMEX=1];"
      conn.Execute SQL, , adExecuteNoRecords

xlApp.workbooks.Close
xlApp.quit
Set xlApp = Nothing
conn.Close
Set conn = Nothing
MsgBox "Данные скопированы!"
...
Рейтинг: 0 / 0
30.08.2005, 10:58:08
    #33240416
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
А если вот в таком порядке?
Код: plaintext
1.
2.
3.
4.
conn.Close
Set conn = NothingxlApp.workbooks.Close
xlApp.quit
Set xlApp = Nothing
...
Рейтинг: 0 / 0
30.08.2005, 11:22:55
    #33240510
Serg841
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
MelkiadesА если вот в таком порядке?
Код: plaintext
1.
2.
3.
4.
5.
conn.Close
Set conn = Nothing
xlApp.workbooks.Close
xlApp.quit
Set xlApp = Nothing

Все равно остается в памяти.
...
Рейтинг: 0 / 0
01.09.2005, 11:28:52
    #33245370
Serg841
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие приложения
Наконец-то удалось получить нужный резалт.
Если Excel убить до использования его в запросе, то все нормально. И запрос выполняется и Excel из памяти исчезает.

Спасибо всем кто помогал разбираться с проблемой!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Закрытие приложения / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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