现在是这样,我用ADOtable打开一个表,现在要查找记录
需要查找的记录可能有多条,位置肯定不在一块
现在,是查找第一条后,怎么查找后面也符合条件的记录,并进行定位,像记事本的查找后,按F3键的效果

解决方案 »

  1.   


      ADOTable1.Open;
      ADOTable1.Filtered:=true;
      ADOTable1.Filter:='';      //此次輸入條件表達式,例如'ID=4'
      ADOTable1.First;           //查找第一條
      ADOTable1.Next;            //查找下一條
      

  2.   

     ADOTable1.Open;
      ADOTable1.Locate(....);
      ADOTable.FindNext;
      

  3.   

    FindNext;不对啊,根本不能正常查找,只是往下移.
      

  4.   

    有一个方法:可以使用书签提前把要查询的信息放到数组里面在进行判断
    下面的例子可以参考一下,,
    var 
      book : Tbook; 
      num : integer; 
    begin 
      try 
        num := 1; 
        getbook; 
        dateset.DisableControls; 
        if not dateset.isempty then 
        begin 
          dataset.first; 
          while not dateset.eof do 
          begin 
            dataset.FieldByName( 'NO ').asinteger := num; 
            num := num + 1; 
            dataset.next; 
          end; 
        end; 
        gotobookMark; 
      finally 
        dateset.enableControls; 
        freebook; 
      end; 
    end;
      

  5.   

    最好在表里加个标识符;
    1.动态生成一个adoquery,查询满足条件的值;
    2.在adotable里用locate定位到adoquery指定记录的标识符;(每点一次F3键,adoquer.next);
      

  6.   

    if adoquery.eof<>true then
      begin
      repeat
      if adoquery.locate()=true then break; 
      until adoquery.eof;
      end;
    我想这应改是最佳的方安!
      

  7.   

    if adoquery.eof < >true then 
      begin 
      repeat 
      if adoquery.locate()=true then break;  
      until adoquery.eof; 
      end; 这种方法永远只会找到第一条,又不会从当前往下找.