![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет!!!
Буду благодарен за Вашу помощь!!! Возникли проблемки в написание кода объединения 2 таблиц(tb1,tb2) с полями tb1(n,name,kol,ed_izm) и tb2(n,name,dw,kol,ed_izm). То есть суть такова, мне необходимо в общую таблицу tb1 внести данные, которые будут в tb2, но не просто объединить, а произвести действия с ними. К примеру: [IMG] ![]() Поясняю: пока не конец tb2 делаю Если1 в tb1.name равно tb2.name делаю если2 tb2.dw='прих' делаю tb1.kol:=tb1.kol+tb2.kol иначе2 если3 tb2.dw='расх' делаю tb1.kol:=tb1.kol-tb2.kol иначе1 tb1 добовляем строки из tb2 Работаю с помощью ADOQuere, таблицы в Access2003. То есть не получается написать правильно код! Возможно условие цикла не правильно задаю! Код:
procedure TForm1.Button4Click(Sender: TObject); var s:integer; begin if DM.ADOQuery2.Modified then begin DM.ADOQuery2.Post; DM.ADOQuery2.First; while not DM.ADOQuery2.Eof do begin s:= DM.ADOQuery2.FieldByName('kol').AsInteger; if Trim(AnsiLowerCase(DM.ADOQuery2.FieldByName('name').Text))= Trim(AnsiLowerCase(DM.ADOQuery1.FieldByName('name').Text)) then begin DM.ADOQuery1.Close; DM.ADOQuery1.SQL.Clear; DM.ADOQuery1.SQL.Add('UPDATE Dvig SET kol=kol+s'); DM.ADOQuery1.ExecSQL; end; DM.ADOQuery2.Next; end; end; Сам код на компиляцию ошибок не выдает, но при выполнении ругается на переменную S. Тем самым попробывал в запросе вместо S поставить цифру 5, данные изменяются причем все, а нужно чтобы изменились только совподающии данные с поля(name) из таблиц (tb1,tb2) . Поправьте код, или мою направленность, если такое возможно или подскажите как правильно обращаться к ячейке на коде программировании и выполнять с ней какие либо действия Последний раз редактировалось schuher, 27.01.2015 в 13:21. |