где надо открывать книгу?

crazytrain
Дата: 08.09.2005 16:54:15
Есть база на аксесе. и там по ходу работы с базой возникает необходимость несколько раз открывать книгу экселя и вносить ( или доставать) данные. Так вот если это делать в отдельной процедуре то это получается много и долго и часто. Хочется как бы открыть один раз книгу и потом ее (ну объект) пользовать по всему проекту, а потом в конце работы закрыть. Где это надо сделать?
adv
Дата: 08.09.2005 17:03:27
А почему бы экселевский файл не связать через

Файл - Внешние данные - Связь с таблицами

?
msdatabaseru
Дата: 08.09.2005 17:14:46
почитай про глобальные переменные

коротко:
объявить public переменную в общем модуле или модуле постоянно открытой формы
crazytrain
Дата: 08.09.2005 19:03:15
чего-то не получается
писал в модуле и Public xApp As Excel.Application и Dim xApp As Excel.Application
В первой форме вроде нормально прокатывает срабатывают строчки
Set xApp = CreateObject("Excel.Application")
xApp.AskToUpdateLinks = False
xApp.Workbooks.Open "H:\test.xls"
Set curB = xApp.Workbooks(1)

а потом открываю еще одну форму а там надо опять обратиться к этому же файлу пишу
Set curB = xApp.Workbooks(1)
а он мне типа "нет обекта" но ведь xApp обявлен в модуле.

как быть?
Пользователь2
Дата: 09.09.2005 08:52:10
Public xApp As Excel.Application
Public curB As Excel.Workbook
crazytrain
Дата: 09.09.2005 09:40:18
Все равно говорит " object required "
хотя первая форма в которой были обявлены xApp и curB не закрывалась а просто стала неактивной.
PA
Дата: 09.09.2005 10:21:36
Если переменные были объявлены в модуле формы, то тогда надо так:
Set curB = Forms(YourFormName).xApp.Workbooks(1)
Или, как уже было сказано, объявлять переменные в общем модуле.
Пользователь2
Дата: 09.09.2005 10:28:04
Объявил в общем модуле. Все работает.
crazytrain
Дата: 09.09.2005 11:01:01
Спасибо, вроде сработало. :-)