Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему может не работать Office 2003 Через OLE [D7, WinXP]


Inna_Z ©   (2007-03-26 17:07:00) 

Простенькая программка.
Не хочет работать с 2003-им офисом, но прекрасно выполняется на 2000-ом.

Что такого нового появилось в новом офисе и как его правильно настроить или установить чтоб это заработало?

При запуске программы выскакивает окошко о том что приложение ексель вызвало ошибку и будет закрыто...

var
  App: OleVariant;
begin
 try
   App := GetActiveOleObject('Excel.Application');
 except
   try
     App := CreateOleObject('Excel.Application');
   except
     ShowMessage('Cannot start!');
     Exit;
   end;
 end;

 App.Visible := True;
 App.Workbooks.Add[XLWBatWorksheet];
 App.Workbooks[1].Worksheets[1].Name := 'Delphi Data';
end;


Inna_Z   (2007-03-27 12:47:00) [1]

Суть глюка оказалась в том что доустанавливала проджект я тогда с другого пакета офиса, с другим серийным номером...

 Обнаружилось случайно :-)
 После того как всё удалила поставила офис - программа заработала без проблем. А после того как установила MSProject - то снова появилась ошибка.

 Эх.


umbra   (2007-03-26 19:31:00) [2]

похоже на то, что осталось что-то от 2000-го оффиса. Я в подобных случаях сношу все оффисы, чищу руками все файлы (файлы могут быть в папках Program Files\Microsoft office, Program Files\Common files\Microsoft Shared\office, Documents and Settings\<username>\Application Data\office), на всякий случай перезагружаю машину, делаю проверку реестра на предмет ключей, ссылающихся в никуда и только потом устанавливаю нужный оффис


Inna_Z   (2007-03-26 19:20:00) [3]

Да остаётся.

 И даже пробовала на 2005 студии а не на делфи сделать подобное
после подключения там екселя оно его просто не видело.
 
 Вот пробую переустановить ещё раз офис уже полностью почистив всё.
 Посмотрим что получится.
 Мне кажется проблема может быть только в этом.

 Но ключи в реестре все на месте. И пути правильные. И притом я изначально хочела подключить так MSProject (котрый переж этим только только установила), а только потом обнаружила что так не только он не работатет, но и все продукты офиса.

 Другие программы не офисовские робовала подключать, то было без проблем.


umbra   (2007-03-26 18:58:00) [4]


> предлагайте ещё несколько раз переустановить офис

а дело идет к тому :). А если написать
App := CreateOleObject('Excel.Application.11');
ошибка остается?


Inna_Z   (2007-03-26 17:51:00) [5]

Оно сваливается ещё во время
 App := CreateOleObject('Excel.Application');

 этот код в принципе вообще можно убрать

App.Visible := True;
App.Workbooks.Add[XLWBatWorksheet];
App.Workbooks[1].Worksheets[1].Name := 'Delphi Data';


 И весь тот код спокойно работает на 2000-ом офисе

 Дело даже не в екселе. Ни одно офисное приложение не удаётся подключить через ОЛЕ.

 Только не предлагайте ещё несколько раз переустановить офис.
 Может есть какие-то особенности по его установке, чтоб это работало?


umbra   (2007-03-26 17:45:00) [6]


> о том что приложение ексель вызвало ошибку и будет закрыто.
> ..

на какой строчке?


>  App.Workbooks.Add[XLWBatWorksheet];

это неправильно. Add - метод, поэтому скобки должны быть круглые


Наверх

Титульная страница Поиск, карта сайта Написать письмо