Некоторые ошибки при работе с EXCEL
От: BOSS1999 Россия  
Дата: 30.03.07 15:02
Оценка:
Добрый всем день!

1 вопрос: посмотрев много примеров, решил сделать выгрузку данных в excel документ
Private Sub Print_Documents()
Dim ExcelAppl As Excel.Application

ExcelAppl = CreateObject("Excel.Application")
ExcelAppl.Workbooks.Open("C:\Document.xlt") — на этой строке вываливается ошибка ЧЛЕНЫ ГРУППЫ НЕ НАЙДЕНЫ
ExcelAppl.Visible = True
End Sub
что за ошибка то такая? что не так?

2. (самый главный) Хотел сделать чтобы файл-шаблон был вложенным ресурсом. Как это сделать понятно, а хотелось бы
теперь узнать как подсунуть его в ExcelAppl.Workbooks.Open(EmbeddedResource).
Каким образом (если вообще можно так сделать) EmbeddedResource получить из проекта и подставить как объект?

Если что напутал — уж не серчайте.
Спасибо за помощь.
Re: Некоторые ошибки при работе с EXCEL
От: BOSS1999 Россия  
Дата: 30.03.07 15:22
Оценка:
на первый вопрос вроде нашелся ответ:
косяк какой то не знаю как он объясняется:
вообщем делал так — добавил COM референс Excel 5 Object Library
и соот-но использовал ее. лезла такая ошибка. причем при просмотре Application в Object Browser показывалось что это интерфейс. А после того как изменил референс — указал в лоб, то опять таки при просмотре в Object Browser теперь уже Application как класс
ничего не понятно, но по крайней мере тепрь обеъет excel создается и открывается нормально шаблон.

А вот на 2-ой вопрос ОЧЕНЬ хотелось бы получить ответ
Re[2]: Некоторые ошибки при работе с EXCEL
От: ZAMUNDA Земля для жалоб и предложений
Дата: 30.03.07 23:22
Оценка:
Здравствуйте, BOSS1999, Вы писали:

BOS>косяк какой то не знаю как он объясняется:

BOS>вообщем делал так — добавил COM референс Excel 5 Object Library
BOS>и соот-но использовал ее. лезла такая ошибка.
Ничего не понимаю.
В чё ты пишеш вообще? В VB или в VBA макросе Office?
Если ты пишеш в VB, то строчка "Dim ExcelAppl As Excel.Application" у тебя компилироваться не должна, до те пор пока ты в ссылках "Microsoft Excel xx.x Object Libary" не подключишь!
Если в макросе, то если это Excel, то ничего подключать ненадо, т.к. всё подключено, иначе всё так ж как в VB.
Вообще, надо писать так:
Private Sub Print_Documents()
Dim ExcelAppl As Object

Set ExcelAppl = CreateObject("Excel.Application")
ExcelAppl.Workbooks.Open "F:\Document.xlt"
ExcelAppl.Visible = True
End Sub
...тогда ошибок быть не должно.

BOS> причем при просмотре Application в Object Browser показывалось что это интерфейс. А после того как изменил референс — указал в лоб, то опять таки при просмотре в Object Browser теперь уже Application как класс

BOS>ничего не понятно, но по крайней мере тепрь обеъет excel создается и открывается нормально шаблон.
Опять ничего не понимаю.
В Object Browser все интерфейсы это классы. Точнее CoClass'ы COM не показываются вообще, а только их Default Interface.

Вложенный ресурс, как файл шаблона ты Excel'у врядли скормишь напрямую, лучше на диск бинарник сохраняй и потом его имя подсовывай Excel'у -- ну и удаляй вконце. :)

PS: оформляй код тегами языка ([vb][/vb]), так читать удобнее.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re[3]: Некоторые ошибки при работе с EXCEL
От: Dmi3Kondakov  
Дата: 06.04.07 13:51
Оценка:
А вопрос ещё такой:почему, когда программно я работаю с базой с помощью библиотеки MS Ecxel 11.0 и одновременно запускаю другую таблицу или прямо эту же, возникает ошибка. С чем это связано?
Re[4]: Некоторые ошибки при работе с EXCEL
От: Gromo.Boy Россия  
Дата: 06.04.07 20:43
Оценка:
Здравствуйте, Dmi3Kondakov, Вы писали:

DK>А вопрос ещё такой:почему, когда программно я работаю с базой с помощью библиотеки MS Ecxel 11.0 и одновременно запускаю другую таблицу или прямо эту же, возникает ошибка. С чем это связано?

Судя по всему, Excel не очень любит создавать дополнительные инстансы вызванные не счерез COM а запуском Excel.exe... Помнится он зависает, если есть экземпляр, созданый через COM, если запустить екзешник.
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re[5]: Некоторые ошибки при работе с EXCEL
От: Dmi3Kondakov  
Дата: 07.04.07 08:30
Оценка:
Получается, что единственным выходом будет использование dataadapter и всей этой байды? Есть ли какие-нибудь настройки, в которых можно заблокировать доступ к читаемой таблице или запретить создавать инстанс через com вне моей программы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.