Set adoTempRS = New Recordset
adoTempRS.Open " select * from CZT09 where XTDWDM='" & strERPDWDM & "' and CZSCDH='" & adoGGRS.Fields("S_gcggtzd_ph").Value & "' and CZPROD='" & adoGGMXRS.Fields("S_gcggtzdmx_zj").Value & "' and SSCJDM='" & adoGGMXRS.Fields("S_gcggtzdmx_cj").Value & "' and CZRWBH='" & adoGGMXRS.Fields("S_gcggtzdmx_orwh").Value & "'  and CZSEQ=" & adoGGMXRS.Fields("S_gcggtzdmx_wlxh").Value & "", HZerpcnn, adOpenDynamic, adLockOptimistic
iCount = 0
While Not adoTempRS.EOF
      iCount = iCount + 1
      adoTempRS.Fields("CZRNBR").Value = iCount
      adoTempRS.Update
      adoTempRS.MoveNext
Wend
在update 后再movenext ,有时会报错::"无法为更新行集定位:一些值可能已在最后读取后改变",但有时又不报,是在那个时候还有其他人也在访问该记录吗?请各位帮忙,歇谢!!!

解决方案 »

  1.   

    iCount = 0
    While Not adoTempRS.EOF
          iCount = iCount + 1
          adoTempRS.Fields("CZRNBR").Value = iCount      adoTempRS.MoveNext
    Wend
          adoTempRS.Update
      

  2.   

    无法为更新行集定位:一些值可能已在最后读取后改变有两条相同的记录时会产生此错误,还有就是并发冲突建议你用数据批更新,最后update
      

  3.   

    Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic
      

  4.   

    To:lihonggen0(李洪根,用.NET,标准答案来了) ,根据你的方法还是报错,位置为adoTempRS.Update,错误报告为:“eof或bof有一个是真,或者当前记录已被删除,所需操作需要一个当前记录”,请各位再好好看看,ok?谢谢!