Вот моя процедура входа в базу Access.
Код | procedure TReg_user.Button1Click(Sender: TObject); begin Reg_user.ADOTable1.close; Reg_user.ADOTable1.Open; repeat if Reg_user.ADOTable1.FieldByName('code').Value = edit1.text then begin Reg_user.ADOTable1.edit; Reg_user.ADOTable1.FieldByName('Family').Value:=Edit2.Text; Reg_user.ADOTable1.FieldByName('Name').Value:=Edit3.Text; begin cpp.Refresh; end; Reg_user.ADOTable1.refresh; Reg_user.close; lection.show; break; end else reg_user.ADOTable1.Next; until reg_user.ADOTable1.Eof=true;
end;
|
CPP, главная форма; Reg_user, форма регистрации(код на ней), Lection, дополнительно....она роли не играет. На форме CPP, лежит ListView(у item'ов имеется checkbox).
Код | procedure TCPP.ListView1Click(Sender: TObject); begin reg_user.ADOTable2.close; reg_user.ADOTable2.Open; // Первая лекция if listview1.Selected.Caption='1 лекция' then Begin reg_user.ADOTable2.edit; reg_user.ADOTable2.FieldByName('Lection 1').Value:='x'; reg_user.ADOTable2.Refresh; listview1.Hide; TWebBrowser(PageControl.ActivePage.Controls[0]).Navigate(ExtractFilePath(Application.ExeName)+'html\site\index.htm'); end; // Вторая лекция if listview1.Selected.Caption='2 лекция' then begin reg_user.ADOTable2.edit; reg_user.ADOTable2.FieldByName('Lection 2').Value:='x'; reg_user.ADOTable2.Refresh; listview1.Hide; TWebBrowser(PageControl.ActivePage.Controls[0]).Navigate(ExtractFilePath(Application.ExeName)+'html\site\index1.htm'); end; end;
|
Соответственно если чекаю на item'е вылезает ошибка, что запись уже есть и посылает меня на...  Необходима проверка если есть запись в поле, то item либо скрывается, либо рядом чекается и наоборот, если чекаю itemом, заносится в базу, если уже есть там запись просто заменяет либо showmessage! Как я только не извращался и условия ставил и черт знает чего, результат один...запись уже есть, так что отвалите. Вернул более старый вариант, а то там вообще кошмар...черт разберешься.
Помогите плизз......как нормально сделать.
|