Здравствуйте!
Делаю экспорт в Excel след. образом:
Код:
procedure TForm.BitBtn6Click(Sender: TObject);
var
XL, XArr: Variant;
i: Integer;
j: Integer;
begin
XArr:=VarArrayCreate([1,DM.ADOQuery1.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application'); // Создание OLE объекта
XL.WorkBooks.add;
XL.visible:=true;
j := 1;
DM.ADOQuery1.First;
while not DM.ADOQuery1.Eof do
begin
i:=1;
while i<=DM.ADOQuery1.FieldCount do
begin
XArr[i] := DM.ADOQuery1.Fields[i-1].Value;
i := i+1;
end;
XL.Range['A'+IntToStr(j),CHR(64+DM.ADOQuery1.FieldCount)+IntToStr(j)].Value := XArr;
DM.ADOQuery1.Next;
j:=j+1;
end;
XL.Range['A1',CHR(64+DM.ADOQuery1.FieldCount)+IntToStr(j)].select;
XL.Selection.Font.Name:='Arial';
XL.Selection.Font.Size:=10;
XL.selection.Columns.AutoFit;
XL.Selection.HorizontalAlignment:=2;
XL.Selection.Borders.LineStyle:=2;
end;
В таблице формирую 25 полей. При нажатии кнопки открывается Excel и вылетает ошибка
OLE Error 800A03EC и показывает ошибку на строке
Код:
XL.Range['A'+IntToStr(j),CHR(64+DM.ADOQuery1.FieldCount)+IntToStr(j)].Value := XArr;
Если формирую 24 поля и меньше, то проходит все нормально. Подскажите в чем проблема.
P.S. Delphi7+MSSQL2005