刷新是用adoquery1.close;adoquery1.open;如何在刷新后光标回到当前记录(该录不在最后和最前,不定位)

解决方案 »

  1.   

    var
    I:integer;
    begin
    I := ADOQuery1.RecNo;
    ADOQuery1.Close;
    ADOQuery1.Open;
    ADOQuery1.RecNo := I;
      

  2.   

    这个我用BDE的程序,你自已修改一下吧
    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var ch:string;
      s:TBook;
    begin
     if key=13 then
      begin
       //he:=he-(ki-table1.fieldbyname('err_qty').asinteger);
       with  Table1 do
       begin
          S := GetBook;   //给书签赋值;就是你要回来的地方;
        try
          FindPrior;                  //执行处理操作;
          active:=false;
          active:=true;
          GotoBook(S);    //回到你设置的书签处;
          next;
        finally
          FreeBook(S);    //释放掉书签所占用的内存空间;
        end;
        end;
       //edit1.text:=inttostr(he);
       //edit2.Text:=table1.fieldbyname('err_qty').AsString;
      end;
    end;
      

  3.   

    刷新前记住此行ID号
    刷新后用locate找到就OK啦行不行啊?????