我进入修改模式 with adoTable1 do
Try
        Edit;
        FieldByName('编号').AsString:=Edit1.Text;
   Post;
       adoTable1.refresh;
        ShowMessage('数据已正确保存!!');
         except
  Cancel;
        ShowMessage('有重复的通知书编号!!');
        edit1.Text:='';
              edit1.setfocus;
      end;    我的编号是主键我 怎么才能把这行给覆盖 而不出现有重复的编号

解决方案 »

  1.   

    加一段验证代码如何
    While not ADOTable1.eof do
       if ADOTable1.FieldByName('编号').AsString=Edit1.Text then
          begin
          ShowMessage('有重复的通知书编号!!');
          break;
          end
       else
          ADOTable1.next;
    end;
      

  2.   

    为什么这么麻烦?
    直接使用ADOTable1.FindKey([Edit1.Text])搜索不就行了?
      

  3.   

    加个ADOQUERY,检查是否有相同的编号如下!!
    ADOQUERY1.SQL.CLEAR;
    ADOQUERY1.SQL.ADD('SELECT * FROM TABLE1 WHERE 编号='+Edit1.Text);
    ADOQUERY1.OPEN;
    IF ADOQUERY1.RECORDCOUNT=1 THEN
    showmessage('编号重复')
    else
    begin
    Edit;
            FieldByName('编号').AsString:=Edit1.Text;
       Post;
           adoTable1.refresh;
            ShowMessage('数据已正确保存!!');end;
      

  4.   

    如果是修改纪录,点修改时候记录主健oldkey
    保存之前可以判断如果插入状态,则用另一Query来查询看是否有重复记录,
    否则如果是修改状态,而且oldkey<>newkey时利用Query来根据newkey判断是否已有记录。
      

  5.   

    FindKey([Edit1.Text])
    得需要索引的,,
      

  6.   

    保存前查一下编号是否存在不就行了
    用adoquery吧
      

  7.   

    adoquery.delete把当前行删除不就行了