我把数据库中的一个表绑定到一个datagrid中,不能通过datagrid进行直接的数据修改。而是弹出新的对话框实现。当进行添加记录时, 我会在recordset.AddNew之前记住AbsolutePosition,以便用户放弃添加时,让datagrid指回原来那个记录。这样做的话,如果添加记录前是没有记录的,recordSet的AbsolutePosition= -1,
用户放弃添加时,把recordset的AbsolutePosition付为-1,就出错。这个时候应该怎样做啊?

解决方案 »

  1.   

    如果要实现你这个要求,个人建议是不使用datagrid数据datagrid只是recordset的反映,这样很容易使recordset混乱掉。
      

  2.   

    我觉得我这个跟datagrid关系不大,因为我修改的是recordset。AbsolutePosition也是recordset的东西。
      

  3.   

    我现在用的是ADO的东西,想在用户取消操作后,把recordset回到原来的位置是想实现DAO中
    Recordset.Book = Recordset.LastModified
    的功能
      

  4.   

    ado里也book的呀,不过是这样用的:在修改之前记住book(变量=adors.book),在取消时再赋回来就行了。
      

  5.   

    如果当前记录为空时,获取adors.book出错。
    错误内容为:“BOF和EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录”
      

  6.   


    if not  rs.eof then bk=rs.book
      

  7.   

    现在还是我是这样做的:
         当rs不为空时,我通过Book或者AbsolutePosition来跳回原来的位置。
         当rs为空时,我就用MoveFirst来重设rs。
      

  8.   

    这个一般用book来实现。另外,要用这一属性,Recordset的CursorLocation必须设置为adUseClient才可以,这一项容易被忽略。