Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка 'OLE error 800A03EC', При обновлении внешних данных ошибается! 
:(
    Опции темы
allknower
Дата 18.10.2007, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.12.2006
Где: Краснодар

Репутация: нет
Всего: нет



Код

Procedure .......
  ExcelApp.Connect;
   while finish>0 do
     begin
       try
         ExcelApp.WorkBooks.Open(Path,
                        EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
                        EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
                        EmptyParam,EmptyParam{,EmptyParam,EmptyParam},0);         
         ExcelApp.Application.EnableEvents := false; 

         WorkBk := ExcelApp.WorkBooks.Item[1{i}];    

         For i:=1 to WorkBk.Worksheets.Count do
           begin
             WorkSheet:=WorkBk.WorkSheets.Get_Item(i) as _WorkSheet;
             if WorkSheet.Name = SheetName then
               begin
                 bNaydeno:=True;
                 WorkSheet.Activate(LOCALE_USER_DEFAULT);  
               end;
             if bNaydeno then break;
           end;
//-----------------------------------------------------
         if cb1.Checked then           //rep1
           begin        
             WorkSheet.Range['B2',EmptyParam].QueryTable.Refresh(false);
             progress.Progress:=progress.Progress+p_tmp div 2;
             WorkSheet.Range['B29',EmptyParam].QueryTable.Refresh(false);
           //  progress.Progress:=position+p_tmp;
             progress.Progress:=30;
             cb1.State:=cbGrayed;
           end
         else
//      . . .
         if cb6.Checked then           //rep6
           begin
              WorkSheet.Range['B4',EmptyParam].QueryTable.Refresh(false); // возникает ошибка!!!
              WorkSheet.Range['F4',EmptyParam].QueryTable.Refresh(false);
              cb6.State:=cbGrayed;
              progress.Progress:=80;
           end;
    end; // while
end; // procedure

procedure TForm1.CB1Click(Sender: TObject); // При выборе checkBox'a finish инкрементируется, при переводе в состояние cbGrayed - дерементируется
begin
  if (sender as TCheckBox).Checked then inc(finish)
  else dec(finish);
end;



При выполнении кода ^^^ на строчке WorkSheet.Range['B4',EmptyParam].QueryTable.Refresh(false); вываливается ошибка:
user posted image


Цитата

Project Project1.exe raised exception class EOleException with message 'OLE error 800A03EC'. Process stopped. Use Step or Run to continue.


В чем я не прав?
PM MAIL ICQ   Вверх
iskatel2
Дата 25.12.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.5.2006
Где: 58 RU

Репутация: нет
Всего: нет



Тупик при передаче данных в Excel

передаю ячейке Excel данные (string) c помощью следующей процедуры:

Код

  procedure ExelFill(var text:string; pnt:TExel_pnt);
  var
    txt:string;
  begin
      txt:= text;
      try
        ExcelWorksheet1.Range[pnt.stolbik , pnt.stroka].NumberFormat := '@';
        ExcelWorksheet1.Range[pnt.stolbik , pnt.stroka].HorizontalAlignment := xlCenter;
        ExcelWorksheet1.Range[pnt.stolbik , pnt.stroka].Font.Bold:=true;
      finally
          ExcelWorksheet1.Range[pnt.stolbik , pnt.stroka].Value2:=txt;
      end;
  end;


вызов следующий:

Код

  ins_pnt.stolbik:='E16'; ins_pnt.stroka:='E16';
  tmp_str:=FloatToStrF(SSD[n].AV,ffGeneral,4,3);
  ExelFill(tmp_str,ins_pnt);


часть данных (например данные - '0,2') выводиться без проблем

а часть (например данные - '0,8') выдаёт следующую ошибку "Raised exception class EOleException " OLE error 800A03EC"

НЕПОНИМАЮ! ! !  почему в первом случае ошибки нет а во втором ошибка? 

p.s. ячейки куда выводяться данные различные.
PM MAIL ICQ   Вверх
CTapMex
Дата 4.1.2008, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 20.2.2007

Репутация: нет
Всего: нет



аналогичная ошибка у меня стала появляться недели как 2. вначале думал что дело в объеме данных которые вставляю в excel, т.к. при небольшом количестве все нормально, а много - и ошибка. копаю дальше ... 
PM MAIL   Вверх
CTapMex
Дата 4.1.2008, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 20.2.2007

Репутация: нет
Всего: нет



все оказалось проще... точнее сложнее
в общем вот статейка, как раз должна решить жту ошибку. мне помогла
PM MAIL   Вверх
sergey1
Дата 31.10.2010, 04:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 31.10.2010

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Akella
Дата 10.10.2014, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18476
Регистрация: 14.5.2003
Где: Корусант

Репутация: 2
Всего: 329



Может кому будет актуальная тема ещё.
Ошибка OLE error 800A03EC связана выходом за рамки диапазона.
Код

Var
 WorkBk : _WorkBook; //  определяем WorkBook
 WorkSheet : _WorkSheet; //  определяем WorkSheet
begin
....
...
  vType   := WorkSheet.Cells.Item[iRowIndex, iColumnIndex].Value


Если в iColumnIndex будет значение -1 (минус один), то будет ошибка, т.к. колонки с индексом -1 не бывает, в экселе колонки начинаются с единицы.
PM MAIL   Вверх
Google
  Дата 26.5.2019, 07:06 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0919 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.