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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2009, 08:21   #1
Власов А.С.
Пользователь
 
Регистрация: 04.08.2009
Сообщений: 48
По умолчанию

Добрый день!
Подскажите как правильно сделать. У меня база в аксес есть одна таблица в которую проходит импорт из экселя а как сделать так чтоб при импорте в одну таблицу шла проверка другой и если нет записей таких то и туда заносилось.
вот как у меня происходит импорт в таблицу аксеса.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Msx, Workbook, Sheet : variant;
st, st1, st2, st3, st4,
st5, st6, st7, st8, st9,
st10, st11, st12 : String;
boo : boolean;
c1 : integer;
begin
if FileListBox1.ItemIndex = -1 then exit;
Msx:=CreateOleObject('Excel.Application');
Msx.Visible:=false;
Workbook:=Msx.Workbooks.Open(FileListBox1.FileName);
Sheet:= WorkBook.ActiveSheet;
boo:=true;
c1:=16;
While boo<>false do
begin
st:= Sheet.cells[c1, 1].value;
st1:= Sheet.cells[c1, 2].value;
st2:= Sheet.cells[c1, 3].value;
st3:= Sheet.cells[c1, 4].value;
st4:= Sheet.cells[c1, 5].value;
st5:= Sheet.cells[c1, 6].value;
st6:= Sheet.cells[c1, 7].value;
st7:= Sheet.cells[c1, 8].value;
st8:= Sheet.cells[c1, 9].value;
st9:= Sheet.cells[c1, 11].value;
st10:= Sheet.cells[c1, 12].value;
st11:= Sheet.cells[c1, 13].value;
st12:= Sheet.cells[c1, 14].value;
if (st<>'') then
begin
ADOTable1.Insert;
ADOTable1.FieldByName('Наименование п/п').AsString:=st;
ADOTable1.FieldByName('Дата').AsString:=st1;
ADOTable1.FieldByName('Номер').AsString:=st2;
ADOTable1.FieldByName('ИНН плательщика').AsString:=st3;
ADOTable1.FieldByName('КПП плательщика').AsString:=st4;
ADOTable1.FieldByName('Плательщик').AsString:=st5;
ADOTable1.FieldByName('ИНН администратора поступления').AsString:=st6;
ADOTable1.FieldByName('КПП администратора поступления').AsString:=st7;
ADOTable1.FieldByName('ОКАТО администратора поступления').AsString:=st8;
ADOTable1.FieldByName('КБК').AsString:=st9;
ADOTable1.FieldByName('Назначение платежа').AsString:=st10;
ADOTable1.FieldByName('Зачислено').AsString:=st11;
ADOTable1.FieldByName('Списано').AsString:=st12;
ADOTable1.Post;
inc(c1);
end else boo:=false;
end;
Msx.Quit;
Msx := Unassigned;
ShowMessage('Готово!');
if DeleteFile(Pchar(FileListBox1.FileName)) then
ShowMessage('Импорт прошел без ошибок!')
else
ShowMessage('Ошибка! Вот ее код: '+IntToStr(GetLastError));
end;

Последний раз редактировалось mihali4; 06.11.2009 в 11:47. Причина: Флуд
Власов А.С. вне форума Ответить с цитированием
Старый 06.11.2009, 09:17   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Используй функцию Locate. С ее помощью можно решить твою проблему.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 09.11.2009, 09:07   #3
Власов А.С.
Пользователь
 
Регистрация: 04.08.2009
Сообщений: 48
По умолчанию

А можно по подробнее.
Власов А.С. вне форума Ответить с цитированием
Старый 09.11.2009, 09:48   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А мне кажется что достаточно создать в БД некое поле ключ причем уникальный, (допустим это поле Номер) тогда при попытке вставить запись с номером, который уже есть прога ругнется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
phpmyadmin, ошибка при импорте Linel PHP 3 14.07.2009 19:11
Сохранение имен столбцов при импорте данных из Delphi в Excel an4ik Общие вопросы Delphi 3 07.03.2009 15:23
как организовать отклик на событие при импорте-экспорте данных Artmi Microsoft Office Excel 8 03.06.2008 23:31
Не читаемые данные при Импорте внешних данных (unicode) al2 Microsoft Office Excel 2 11.02.2008 08:40