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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 03:22   #1
obolensky
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 5
По умолчанию Excel, stringgrid и access

Доброй ночи.

Загружую из excel'я в stringgrid, через массив. Потом из массива выгружаю, всё это в Access. В стринггриде, всё отображается нормально. При загрузке в Access, порядок строчек нарушается.

p.s. Нужно делать именно через массив. Условия лабы.

Код ниже. Прикладываю проект к теме.

Код:
var
  Form2: TForm2;
  exc: array [1..10,1..10] of string;  //Строковой архив, в него загружаем данные из Excel

implementation

{$R *.dfm}

procedure TForm2.ExcelClick(Sender: TObject);
begin
ShellExecute(Handle,nil,PChar(Edit1.Text+'.xlsx'),nil,nil,SW_MAXIMIZE);   //Это открывает файл Excel, имя которого вводим в edit1
end;

procedure TForm2.UploadClick(Sender: TObject);
var
 wb:_workbook;
 ws:_WorkSheet;
 i,j:integer;

  begin
   ExcelApplication1.Connect;
   wb:=form2.ExcelApplication1.Workbooks.Item[Edit1.Text+'.xlsx'];  //файл excel
   ws:=wb.Worksheets.Get_Item(Edit1.Text) as _WorkSheet;      //лист excel

    for i:=1 to 7 do       //Загружаем значения листа в масси exc
     begin
      j:=i+1;  //начинаем считывать со второй строчки т.к. в первой у нас название столбца
      exc[i,1]:=ws.Cells.Item[j,1].value;
      exc[i,2]:=ws.Cells.Item[j,2].value;
      exc[i,3]:=ws.Cells.Item[j,3].value;
      exc[i,4]:=ws.Cells.Item[j,4].value;
      exc[i,5]:=ws.Cells.Item[j,5].value;
      exc[i,6]:=ws.Cells.Item[j,5].value;
      exc[i,7]:=ws.Cells.Item[j,5].value;

     end;
    for j:=1 to 7 do    //Из массива exc выгружаем всё в стринг.грид
     begin
      StringGrid1.Cells[0,j-1]:=exc[j,1];
      StringGrid1.Cells[1,j-1]:=exc[j,2];
      StringGrid1.Cells[2,j-1]:=exc[j,3];
      StringGrid1.Cells[3,j-1]:=exc[j,4];
      StringGrid1.Cells[4,j-1]:=exc[j,5];
      StringGrid1.Cells[5,j-1]:=exc[j,6];
      StringGrid1.Cells[6,j-1]:=exc[j,7];


  end;
       ExcelApplication1.Disconnect;
       ExcelApplication1.Free;
end;


procedure TForm2.inAccessClick(Sender: TObject); //В этой процедуре выгружаем из массива в Access
  var
  i:integer;
begin
  ADOTable1.Active:=true;
  for i:=1 to 7 do
  begin
   ADOTable1.Insert;
   ADOTable1['Day']:=exc[i,1];
   ADOTable1['Time']:=exc[i,2];
   ADOTable1['Family']:=exc[i,1];
   ADOTable1.Post;
   ADOTable1.Next;
  end;
  ADOTable1.Active:=false;
end;


end.
Вложения
Тип файла: rar Лаба 3.rar (3.14 Мб, 20 просмотров)
obolensky вне форума Ответить с цитированием
Старый 16.01.2013, 03:43   #2
obolensky
Новичок
Джуниор
 
Регистрация: 15.01.2013
Сообщений: 5
По умолчанию

Проблему решил. Нужно убрать ключевое поле из таблицы Access.
obolensky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c Excel в StringGrid SPD Общие вопросы Delphi 3 21.11.2011 14:31
Импорт-экспорт данных Excel-Access, и из Access-Excel Людвиг Microsoft Office Access 3 27.10.2011 14:38
Из StringGrid в ДБ Access monushka БД в Delphi 2 28.10.2009 14:04
перенос данных из stringgrid в Access 13Angel БД в Delphi 4 26.08.2009 11:11
Excel -> StringGrid -> Access evgenmil БД в Delphi 6 30.05.2009 22:37