with table1 do begin
   setkey;
   findfield('rq').AsString:=dbedit1.Text;
   findfield('xianti').AsString:=dbcombobox1.Text;
   findfield('jixing').AsString:=dbedit2.Text;
   if gotokey then
   begin
     showmessage('数据输入重复,重新输入');
     exit;
   end;
为什么输入两组同样的数据后不提示数据输入重复呢????

解决方案 »

  1.   

    我是这么做的
        adoquery1.close;
        adoquery1.SQL.Clear;
        adoquery1.SQL.Add('select * from khda ');
        adoquery1.SQL.Add(' where 客户名称='+quotedstr(edit2.Text));
        adoquery1.open;
        if adoquery1.RecordCount =1 then
          begin
            edit2.SetFocus ;
            showmessage('客户名称已存在,请重新输入!');
            exit;
          end;你参考一下,。
      

  2.   

    建议还是如 pinkpiglm(透明) 所说的先SELECT 一下还是比较好的
      

  3.   

    修改一下  
        adoquery1.close;
        adoquery1.SQL.Clear;
        adoquery1.SQL.Add('select * from khda ');
        adoquery1.SQL.Add(' where 客户名称='+quotedstr(edit2.Text));
        adoquery1.open;
        while not isempty do
          begin
            edit2.SetFocus ;
            showmessage('客户名称已存在,请重新输入!');
            exit;
          end;
      

  4.   

    再补充一下
      with adoquery1 do
        begin
          close;
          SQL.Clear;
          adoquery1.SQL.Add('select * from khda ');
          SQL.Add(' where 客户名称='+quotedstr(edit2.Text));
          open;
          while not isempty do
          begin
            edit2.SetFocus ;
            showmessage('客户名称已存在,请重新输入!');
            exit;
          end;
        end;