zolivan
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите, если кто знает. Как можно получить количество листов книги Excel в Access не вызывая Excel.Application (WorkSheet.Count). Дело в том, что книга не открывается в самом Экселе и попытка выполнения Excel.Application приводит к выдаче сообщения о нехватке ресурсов и остановке выполнения макроса импорта, однако сам файл замечательно открывается в Акцесе, который при использовании мастера импорта видит все листы. Получить количество листов необходимо для организации правильной работы ПрогрессБара. Если это невозможно, тогда подскажите как можно из программы обновлять поле главной формы (пробовал и Repaint для всей формы и Requery для поля - ничего не отрабатывает), то есть ошибок нет, но и результат нулевой. В Акцесе опыта работы практически нет. За основу взял решение из Интернета, которое немного подделал под свои нужды, но вот с визуализацией процесса никак не могу справиться. Конечно хотелось бы организовать ПрогрессБар, но если нелья получить по другому количество листов Экселя, то хотя бы чтоб на форме номера импортирумых листов выводились. Ближе к конкретике. Думаю по первому вопросу более-менее понятно рассказал. Теперь по второму: допустим на форме я объявил поле Def_List, которому в качестве значения передается результат выполнения функции (=MyList() - возвращает текущий импортируемый лист Экселевской книги). Также на форме имеется кнопка Импорт данных, при нажатии на которую мы переходим к функции импорта таблицы (объявлена в блоке Модули) внутри который крутится цикл, зависящий от количества листов (на каждом листе одинаковое количество строк и все листы имеют стандартные названия, так что проблем с определением имени листа и окончанием цикла нет). Кусок кода по памяти. k=0 i=1 While k=0 MyList="Sheet " & Trim(Str(i)) ... что нужно написать здесь, чтобы на форме изменилось поле Def_List ????? ... k= Dcount(...) Mod 64999 i=i+1 Wend PS Хотя получить количество и имена листов было бы предпочтительнее, с точки зрения решения задачи в общем случае. Спасибо. |