我的datagrid控件和adodc控件相绑定
在adodc的recordset中添加记录并刷新后
datagrid的光标(即前面那个黑小三角箭头)便移到第一个记录了
问题就是:怎样能让它回到之前插入的记录上呢?

解决方案 »

  1.   

    可以用ADODC.Recordset.Move方法 我的例子:
    Dim rsCount As Integer
    rsCount = Adodc1.Recordset.RecordCount
    Adodc1.Recordset.AddNew
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Update
    Adodc1.Refresh
    '下面从第一条记录开始,移动到rsCount-1这一条
    Adodc1.Recordset.Move rsCount - 1, 1 QQ33524826
      

  2.   

    楼上说的是没错不过我还是改一下这样更符合楼主意思Dim Posi As IntegerPosi=Adodc1.Recordset.AbsolutePosition'记录当前记录号
    Adodc1.Recordset.AddNew
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Update
    Adodc1.Refresh
    '下面从第一条记录开始,移动到rsCount-1这一条
    Adodc1.Recordset.Move  Posi, 1
      

  3.   

    用ADODC.Recordset.Move方法
    记住你修改的行,然后再移到此行即可
      

  4.   

    Dim rsCount As Integer
    rsCount = Adodc1.Recordset.RecordCount
    Adodc1.Recordset.AddNew
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Fields("FieldName") = FieldValue
    Adodc1.Recordset.Update
    Adodc1.Refresh
    '下面从第一条记录开始,移动到rsCount-1这一条
    Adodc1.Recordset.Move rsCount - 1, 1 
      

  5.   

    但这只是move到最后阿
    当一调用Adodc1.Refresh时,新的记录早就插到中间去了
    其实,问题的关键是,怎样获得新插入记录在刷新后的位置
    比如我的表是按id来排序的,当新插入一个新的记录时
    怎样知道它的位置
    然后调用move函数把光标定位到那里
    我想到用find函数,即用新插的id去找
    但是调用以后,虽然datagrid会翻页到记录那里
    但是光标却不见了