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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2012, 15:25   #1
alexvav
Форумчанин
 
Регистрация: 23.11.2006
Сообщений: 152
По умолчанию Импорт данных из Excel в Access

Есть база в Access с 2 таблицами: "клиенты" и "оплата". В "клиентах" 2 поля: лицевой и наименование. В "оплате" 3 поля: лицевой, наименование и сумма.
Необходимо из Excel файла добавить данные в "оплату". В экселе только два поля: лицевой и сумма. Добавить лицевой и сумму у меня получилось. А вот как добавить лицевой, сумму и наименование из таблицы клиентов не пойму.
Если путано, могу уточнить
Использую ADO.
Код:
procedure TForm1.btn2Click(Sender: TObject);
 var
  lic:Integer;
  Sum_opl:Real;

 begin

  with DBGrd2.DataSource.DataSet do
  begin
   //иду по экселю и извлекаю нужные данные
    DBGrd2.DataSource.DataSet.First;
    lic:=dbgrd2.DataSource.DataSet.FieldByName('л-сч').AsInteger;
    Sum_opl:=dbgrd2.DataSource.DataSet.FieldByName('Сума').AsFloat;
    while not DBGrd2.DataSource.DataSet.eof do
    begin
     lic:=dbgrd2.DataSource.DataSet.FieldByName('л-сч').AsInteger;
     Sum_opl:=dbgrd2.DataSource.DataSet.FieldByName('Сума').AsFloat;
     //   иду по базе клиентов и чё делать не знаю
      with dbgrd3.DataSource.DataSet do
       begin
        // вставляю в базу оплаты нужные данные
          with dbgrd1.DataSource.DataSet do
           begin
           Insert;
           FieldByName('N_dog').Value :=lic;
           FieldByName('K opl_v').Value:=Sum_opl;
           end;

       end;
        DBGrd2.DataSource.DataSet.Next;

    end;
  end;
  end;
end.
Изображения
Тип файла: jpg Безымянный.jpg (126.4 Кб, 61 просмотров)

Последний раз редактировалось alexvav; 22.06.2012 в 15:34. Причина: добавил жпег
alexvav вне форума Ответить с цитированием
Старый 22.06.2012, 15:40   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

навскидку
Код:
tblOplata.Open;
tblClients.Open;
// идём по экселю и читаем "лицевой" и "сумму" в licVal и sumVal
tblClients.Locate('licevoy', licVal, []); // ищем наше наименование по лицевому (licVal)
tblOplata.Insert;
try
 tblOplata.FieldByName('licevoy').asInteger:=licVal;
 tblOplata.FIeldByName('oplata').asCurrency:=sumVal;
 tblOplata.FiledByName('naimenovanie').AsString:=tblClients.FieldByName('naimenovanie').AsString;
 tblOplata.Post;
 Except
 // сообщение об ошибке
 end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 22.06.2012, 16:17   #3
alexvav
Форумчанин
 
Регистрация: 23.11.2006
Сообщений: 152
По умолчанию

Yurk@, спасибо! Локейт сработал.
alexvav вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из excel в access с регистрацией файлов Anastasia666 Microsoft Office Access 7 24.04.2012 14:14
импорт данных из Excel в Access mr.kot Microsoft Office Access 3 13.11.2011 22:55
Импорт-экспорт данных Excel-Access, и из Access-Excel Людвиг Microsoft Office Access 3 27.10.2011 14:38
Импорт листа Excel из ячейки OLE базы данных Access Gawwws Microsoft Office Excel 1 14.01.2011 00:58
импорт данных из access в excel. romale_80 Microsoft Office Access 8 25.03.2010 01:26