![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет!!!
Буду благодарен за Вашу помощь!!! Возникли проблемки в написание кода объединения 2 таблиц(tb1,tb2) с полями tb1(n,name,kol,ed_izm) и tb2(n,name,dw,kol,ed_izm). То есть суть такова, мне необходимо в общую таблицу tb1 внести данные, которые будут в tb2, но не просто объединить, а произвести действия с ними. К примеру: [IMG] [/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. |