Показать сообщение отдельно
  #1  
Старый 06.11.2009, 13:50
Аватар для gizmomy
gizmomy gizmomy вне форума
Прохожий
 
Регистрация: 30.09.2009
Сообщения: 4
Репутация: 10
По умолчанию Как закрыть файл Excel, открытый и измененный через ADO?

Изменяю некоторый ячейки в файле Excel, используя ADOQuery через MS Jet.
Код:
ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'
                            + 'Data Source=' + OpenExlDialog.FileName + ';'
                            + 'Extended Properties="Excel 8.0;HDR=No";'
                            + 'Mode=ReadWrite;'
                            + 'Persist Security Info=False';
for i := 0 to node.ChildNodes.Count - 1 do begin
   with ADOQuery1 do begin
      EmphsExl := node.ChildNodes[i].Attributes['hs'];
      OperSumExl := DecryptInt(node.ChildNodes[i].Attributes['s']);
      Prepared;
      Parameters.ParamValues['@Emphs'] := EmphsExl;
      Parameters.ParamValues['@OperSum'] := OperSumExl;
      ExecSQL;
   end;
end;
ADOQuery1.Close;
Все срабатывает, но только файл Excel не сохраняется и остается недоступен, пока программа открыта (при попытке открыть этот файл MS Excel выдает ошибку о недоступности). Если закрыть программу, файл Excel сохраняется и его можно открыть самим MS Excel. Почему так и как его сохранить и закрыть не закрывая программы?

Единственное похожее, что нашел — это связи access на sql.ru в разделе delphi, но там нет решения проблемы.

Заранее благодарю за ответ.
Ответить с цитированием