我想用rst_btophr1.move 3移动到第三条记录上,可总是移到别的记录行。用rst_btophr1.MoveFirst也不能移到第一行。是怎么回事?见代码:Private Sub MSHFlexGrid2_DblClick()
 MsgBox MSHFlexGrid2.TextMatrix(MSHFlexGrid2.Row, MSHFlexGrid2.Col)    Dim cn As New ADODB.Connection
   Dim cmd As New ADODB.Command
   Dim rst_btophr1 As New ADODB.Recordset
   Dim rst_temp As New ADODB.Recordset '定义一个临时用的记录集
   cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\btophr.mdb"
   Set cmd.ActiveConnection = cn
   cmd.CommandText = "select * from answer;"
   rst_btophr1.Open cmd, , adOpenKeyset, adLockOptimistic
    'rst_btophr1.MoveFirst  '运行结果不正确
    rst_btophr1.Move 3  '运行结果不正确
      
    If rst_btophr1.Fields("备注1").Value = "未读" Then
        rst_btophr1.Fields("备注1").Value = "已读"
        rst_btophr1.Update
    End If
    cn.Close
    
End Sub

解决方案 »

  1.   

    Move方法:移动记录集指针。该方法有两个参数,第一个参数指定要向前或向后移动多少条记录,第二个参数指定一个相对书签位置,表明从当前记录还是从第1条或最后1条记录开始算,缺省为0从当前记录开始移,将指针从当前位置向前(负数)或向后(正数)移动指定条记录(第二个‘按书签移动’参数设为0-adBookMarkCurrent从当前记录开始,缺省)或将指针从第1条记录算起移动指定条记录(第二个参数设为1-adBookMarkFirst从首记录)。或将指针从最后1条记录算起移动指定条记录(第二个参数设为adBookMarkLast),如:Adodc1.Recordset.Move -12,将指针从当前位置向前移动12条记录,再如Adodc1.Recordset.Move 6 , 1表示指针从首记录开始后移6条记录,即使指针移到第7条记录