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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 20:50   #1
evgenmil
Пользователь
 
Регистрация: 29.11.2008
Сообщений: 16
Вопрос Excel -> StringGrid -> Access

Здравствуйте!
Делаю программу "Взаимодействие Магазин-Склад", и один из ее моментов, это перемещение данных из готового Excel-файла в существующую Аccess базу (с которой и работает основная программа). Посмотрел ответы на КС попытался сделать тоже самое... но при этом у меня выдается ошибка, что поля в базе не найдено, делаю и через ADOQuery и через DataSet. Программа в файле.
Прошу вашей помощи, мне очень нужно этот модуль сделать работоспособным!
ссылка - http://evgenmil.gimnaziya-nt.ho-stin..._to_access.rar
evgenmil вне форума Ответить с цитированием
Старый 30.05.2009, 21:13   #2
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
  ADOConnection1.Connected:=true;
  AQ.SQL.Text:='Insert into list(pole1, pole2) values (:v1,:v2)';
  AQ.Prepared;
  for i:=1 to sg.RowCount-1 do begin
    AQ.Parameters.ParamByName('1').Value:=sg.Cells[i,1];
    AQ.ExecSQL;
  end;
Зайдите в базу и отредоктируите поля соответственно: pole1, pole2.
Вы пишите values (:v1,:v2), а сдесь AQ.Parameters.ParamByName('1') пишите AQ.Parameters.ParamByName('v1').
p.s В Access есть возможность загонять данные из Excel в базу.

Последний раз редактировалось Evgeniy26; 30.05.2009 в 21:15.
Evgeniy26 вне форума Ответить с цитированием
Старый 30.05.2009, 21:18   #3
evgenmil
Пользователь
 
Регистрация: 29.11.2008
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Код:
  ADOConnection1.Connected:=true;
  AQ.SQL.Text:='Insert into list(pole1, pole2) values (:v1,:v2)';
  AQ.Prepared;
  for i:=1 to sg.RowCount-1 do begin
    AQ.Parameters.ParamByName('1').Value:=sg.Cells[i,1];
    AQ.ExecSQL;
  end;
Зайдите в базу и отредоктируите поля соответственно: pole1, pole2.
Вы пишите values (:v1,:v2), а сдесь AQ.Parameters.ParamByName('1') пишите AQ.Parameters.ParamByName('v1').
p.s В Access есть возможность загонять данные из Excel в базу.
Может быть вы мне сразу подскажите, как с остальными столбцами в StringGrid делать, т.е. заносить в базу... (желательно примерчик)
evgenmil вне форума Ответить с цитированием
Старый 30.05.2009, 21:32   #4
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
var
  i: Integer;
begin
  ADOConnection1.Connected:=true;
  AQ.SQL.Text:='Insert into list(1, 2) values (:v1,:v2)';
  AQ.Prepared;
  for i:=1 to sg.RowCount - 1 do
  begin
    AQ.Parameters.ParamByName('v1').Value := sg.Cells[1, i];
    AQ.Parameters.ParamByName('v2').Value := StrToDate(sg.Cells[2, i]);
    AQ.ExecSQL;
  end;
end;
Evgeniy26 вне форума Ответить с цитированием
Старый 30.05.2009, 22:14   #5
evgenmil
Пользователь
 
Регистрация: 29.11.2008
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Код:
var
  i: Integer;
begin
  ADOConnection1.Connected:=true;
  AQ.SQL.Text:='Insert into list(1, 2) values (:v1,:v2)';
  AQ.Prepared;
  for i:=1 to sg.RowCount - 1 do
  begin
    AQ.Parameters.ParamByName('v1').Value := sg.Cells[1, i];
    AQ.Parameters.ParamByName('v2').Value := StrToDate(sg.Cells[2, i]);
    AQ.ExecSQL;
  end;
end;
Как ни крути))) но этот код у меня не работает, как только пытаюсь добавить больше одно столбца, сразу вылетает ошибка: "Несоответствие типов...". А с добавлением одного столбца, все прекрасно работает...
evgenmil вне форума Ответить с цитированием
Старый 30.05.2009, 22:27   #6
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Зайдите в базу и оставте там поля (1, 2). Второе поле сделайте типа дата.
Evgeniy26 вне форума Ответить с цитированием
Старый 30.05.2009, 22:37   #7
evgenmil
Пользователь
 
Регистрация: 29.11.2008
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Зайдите в базу и оставте там поля (1, 2). Второе поле сделайте типа дата.
Спасибо! Все работает, разобрался...
evgenmil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel и StringGrid в Delphi monushka Помощь студентам 28 28.10.2009 16:33
StringGrid, Excel проблемы artemavd Общие вопросы Delphi 8 28.11.2008 19:37
из StringGrid в Excel artemavd Общие вопросы Delphi 6 24.07.2008 18:14
Excel и StringGrid... Roof Общие вопросы Delphi 2 18.09.2007 17:07
Excel и StringGrid apx_angel Компоненты Delphi 2 20.02.2007 00:20