Показать сообщение отдельно
  #1  
Старый 12.03.2013, 12:15
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию Ошибка при выводе в excel

Всем привет друзья! У меня вопрос связанный с выводом БД access в excel.Пытаюсь вывести таким образом:
Код:
procedure TForm2.Button3Click(Sender: TObject);
var
XLapp, Sheet, Colum:Variant;
index,i:Integer;
begin
 XLApp:= CreateOleObject('Excel.Application');
 XLApp.Visible:=true;
 XLApp.Workbooks.Add(-4167);
 XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
 Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;

 Colum.Columns[1].ColumnWidth:=18;
 Colum.Columns[2].ColumnWidth:=18;
 Colum.Columns[3].ColumnWidth:=18;
 Colum.Columns[4].ColumnWidth:=18;
 Colum.Columns[5].ColumnWidth:=18;


 Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
 Colum.Rows[2].Font.Bold:=true;
 Colum.Rows[1].Font.Bold:=true;
 Colum.Rows[1].Font.Color:=clBlue;
 Colum.Rows[1].Font.Size:=10;
 Colum.Rows[2].Font.Size:=10;
 Colum.Rows[3].Font.Size:=10;
 Colum.Rows[4].Font.Size:=10;
 Colum.Rows[5].Font.Size:=10;

 Colum.Rows.Font.Name:=' MS Sans Serif';
 Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
 Sheet.Cells[1,2]:='"Найденные прототипы на Фипс.ру"  '+DateToStr(Date);
 Sheet.Cells[2,1]:='ID';
 Sheet.Cells[2,2]:='Информация о прототипе';
 Sheet.Cells[2,3]:='Дата';
 Sheet.Cells[2,4]:='Идентификатор патента';
 index :=3;

datasource1.DataSet.First;
for i:=0 to datasource1.DataSet.RecordCount-1 do
  begin
   Sheet.Cells[index,1]:= datasource1.DataSet.Fields.Fields[0].AsString;
   Sheet.Cells[index,2]:= datasource1.DataSet.Fields.Fields[1].AsString;
   Sheet.Cells[index,3]:= datasource1.DataSet.Fields.Fields[2].AsString;
   Sheet.Cells[index,4]:= datasource1.DataSet.Fields.Fields[3].AsString;
   Sheet.Cells[index,5]:= datasource1.DataSet.Fields.Fields[4].AsString;
   Inc(index);
   datasource1.DataSet.Next;
end;
Но выдается ошибка "Недостаточно памяти для завершения операций".
Думаю что проблема в том что в бд access у меня есть поле memo в котором находятся много текстовой информации, а всего записей у меня около 50. Отсюда и вытекает недостаток памяти. Но не могу понять какой именно памяти не хватает, оперативной? И как можно обойти это?
Заранее спасибо!
Ответить с цитированием