数据库为ACCESS 3个表连接(user\type\pay) 主从表都设好 
user表中 tel 为不重复字段
在添加数据后 如tel已存在 则有提示信息 如何在点击确定后光标自动转到已存在记录?
怎样写?

解决方案 »

  1.   

    用query.locate()函数.如找到光标自动转到已存在记录
      

  2.   

    function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): 
    Boolean;
      

  3.   

    if query.locate('tel',值,[]) then 
    begin
      showmessage('该值已存在!');
      query.first;
      while (Not query.Eof) and (query.fieldByName('Tel').AsVariant<>值) do
       query.next;
    end;
      

  4.   

    try
      //保存代码;
    finally
      query1.locate('tel',eidt1.text,[]);
    end;
      

  5.   

    注:ADODataSet为正在添加的数据集;ADODataSetFind为查找TEL重复的数据集;DBGridFind为显示TEL重复的数据网格.
    ...
    ...
    ADODateSetFind.active:=False;
    ADODateSetFind.commandText:='Select * from User where tel='+QuotedStr(ADoDateSet.Fieleds('tel').asstring);
    ADODateSetFind.active:=true;
    if ADODateSetFind.IsEmpty then
       ADODateSet.post
    else
       begin
       ShowMessage('有重复数据!');
       DBGridFind.Visible:=true;
       end;
    ...
    ...