如题。
DataGrid的显示的记录,删除中间的一条记录后,光标怎么回到原来位置?如果是最后一条光标就上移一条。
我现在删除后要根据原来的查询条件重新查询一遍,所以光标都是回到了第一条上。
由于可以反复选择不同位置的记录,那怎么记住被删除的记录所在的位置呢?

解决方案 »

  1.   

    用什么绑定的?假设是记录集:Dim n As Long删除前
    n = rs.AbsolutePosition删除后
    rs.AbsolutePosition = n
      

  2.   

    '如果是记录指针回到原来指针,除了2楼的方法外还有下面一种
    dim blnBK     '注:不能加类型
    blnBK=rs.book
    rs.delete
    rs.book=blnbk'以下是光标回到原来位置
    dim intGrdRow as integer
    dim intGrdCol as integerintgrdrow=datagrid.row
    intgrdcol=datagrid.col
    rs.delete
    if not (rs.eof and rs.bof) then
        datagrid.col=intgrdcol
        if rs.eof then
            datagrid.row=intgrdrow-1
        else
            datagrid.row=intgrdrow
        end if
    end if
      

  3.   

    多谢两位。
    请问,我如果用4楼的“rs.delete ”方法执行删除记录,是不是不需要再重新查询一遍数据库就可以刷新datagrid显示的内容了?我现在是另外执行了一个sql来删除记录的,删除后重新按照原来的条件查询一遍再显示。
      

  4.   


    你这样的需求,其实可以利用 ADODC 控件,它会自动处理的。