我是个新手,做个学生信息管理系统,寻求原理和解决方法。其中有删除记录的功能相关代码:
If MsgBox("真的要删除记录?", vbQuestion + vbYesNo, "提示信息") = vbYes Then
        Rct1.Delete 1
        Rct1.MovePrevious
        txtSerial.Text = Rct1.Fields("serial")
        txtname.Text = Rct1.Fields("name")
        cboCla.Text = Rct1.Fields("class")
        txtBri.Text = Rct1.Fields("birthday")
End if       
  
     ‘Rct1为当前记录集, 
当前记录能成功删除,但执行完"Rct1.MovePrevious"后,就出现错误实时错误"3021"内容为:BOF或者EOF中的一个是真,当前记录可能被删除,所需的操作需要一个记录。
个人认为:是不是记录指针移动到最前条记录,不能读取其中的数据?

解决方案 »

  1.   

    我是个新手,做个学生信息管理系统,寻求原理和解决方法。其中有删除记录的功能相关代码: 
    If   MsgBox("真的要删除记录?",   vbQuestion   +   vbYesNo,   "提示信息")   =   vbYes   Then 
                    Rct1.Delete   1 
                    Rct1.MovePrevious 
                    txtSerial.Text   =   Rct1.Fields("serial") 
                    txtname.Text   =   Rct1.Fields("name") 
                    cboCla.Text   =   Rct1.Fields("class") 
                    txtBri.Text   =   Rct1.Fields("birthday") 
    End   if               
        
              ‘Rct1为当前记录集,   
    当前记录能成功删除,但执行完"Rct1.MovePrevious"后,就出现错误实时错误"3021"内容为:BOF或者EOF中的一个是真,当前记录可能被删除,所需的操作需要一个记录。 
    补充:上面代码想实现的功能为删除上一条记录后接着显示下一条的内容(Rct1.MovePrevious 改为Rct1.Movenext)
      

  2.   

    应该是 rct1.movenext 吧
    If MsgBox("真的要删除记录?", vbQuestion + vbYesNo,"提示信息")= vbYes Then   
                    Rct1.Delete   1
      if not rs.eof then 
                    Rct1.MoveNext
                    txtSerial.Text   =   Rct1.Fields("serial") 
                    txtname.Text   =   Rct1.Fields("name") 
                    cboCla.Text   =   Rct1.Fields("class") 
                    txtBri.Text   =   Rct1.Fields("birthday")
      end if
    End       if 
      

  3.   

    回复3楼:这个错误不跟"rct1.movenext"有关,我说的错误是执行完"Rct1.MovePrevious"或者"rct1.movenext"时候出现的 。
    记录也删除,指针也到了下一条或者第一条,但就不能用文本框txtSerial.Text,txtname.Text ...显示出来
      

  4.   

    因为你用Rct1.MovePrevious 后所指向的记录 不存在 因为你删除的是rct1的第一行记录
    或者删除的是最后一条数据 movenext之后也不存在记录 当然不能显示了