Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 22:11   #1
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию Редактирование данных в Excel

Пример беру из книги. Там такой код:
Код:
procedure TForm1.Button6Click(Sender: TObject);
begin
ADOQuery1.Edit();
ADOQuery1.Post();
end;

procedure TForm1.ADOQuery1AfterEdit(DataSet: TDataSet);
begin
ADOQuery1.FieldByName('Имя').AsString:=Edit1.Text;
end;
При нажатии на кнопку происходит ошибка. Сообщение "First chance exception at $7C812AFB. Exception class EOleException with message 'В операции должен использоваться обновляемый запрос'. Process Project1.exe (2560)"

Если убрать ADOQuery1.Post то в DBGrid запись меняется на ту что в Edit1, но естественно не записывается в Excel.
Когда добавляю ADOQuery1.Post то сразу ошибка. Таким образом получается что ошибка происходит при попытке сделать запись в сам файл Excel.
Помогите пожалуйста.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 17.12.2013, 22:25   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

и что тут непонятно "В операции должен использоваться обновляемый запрос"?
запрос показывай
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 17.12.2013, 22:37   #3
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Запрос к базе?
Код:
ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.xls;Mode=Read;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"';
ADOConnection1.Connected:=true;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='SELECT * FROM[List$] WHERE [Дата прихода]<=:MyDate and [Имя]=:P2';
ADOQuery1.Parameters.ParamByName('MyDate').Value:=Date();
ADOQuery1.Parameters.ParamByName('P2').Value:=ComboBox1.Text;
ADOQuery1.Active:=True;
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 17.12.2013, 23:04   #4
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Разобрался.
Код:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.xls;Extended Properties=Excel 8.0;
Вот так нужно было подключать.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование в EXCEl fcdk_pavel БД в Delphi 1 03.10.2013 15:25
Редактирование уже запущенного документа Excel Crazy_Gamer Общие вопросы Delphi 6 07.09.2013 18:55
С++ редактирование Excel-документов Sylvesterr Фриланс 3 30.06.2013 15:40
Редактирование и сохранение excel из dbgrid Q012 БД в Delphi 5 22.08.2012 21:24
Редактирование Excel книг через Delphi? DA-corp. БД в Delphi 3 01.03.2008 09:50