有我建了一个表,记录数为1900条,然后用adodc1连接并遍历并对其进行修改它,
出现了如下两个错误提示:(点击确定按扭,结果正确执行。)"row can't be located for updating,some values may have be changed since last read"
"key column is insufficient or incorrect.too many rows are affected by update"此时用循环控制,遍历1000遍
而当把循环更改,使其对表遍历100遍时,则正确执行没有任何的错误提示。
最近一段时间一直被这个问题困扰,有哪位仁兄知道问题出在哪儿?
解我心头之忧,将不胜感激!!!!(并100大分相送)
谢过!

解决方案 »

  1.   

    你的表是不是没有设主键?还有你的SELECT语句没写好能否将你的Select语句贴出来
      

  2.   

    Do While Adodc1.Recordset.EOF <> True
         If Adodc1.Recordset.Fields("状态") = 1 Then Adodc1.Recordset.MoveNext
         n = Int(Adodc1.Recordset.Fields("考试数") / 30) 
     
         Do While Not Adodc4.Recordset.EOF         If Adodc4.Recordset.Fields("状态") = 0 And Adodc4.Recordset.Fields("自然班数")   <= n And Adodc4.Recordset.Fields("场次") = changci Then
              On Error Resume Next
                  Adodc4.Recordset.Fields("状态") = 1
                  Adodc4.Recordset.Update
                  Adodc3.Recordset.MoveLast
                  Adodc3.Recordset.AddNew        
                  Adodc3.Recordset.Fields("课程号") = Adodc1.Recordset.Fields("课程号")
                  Adodc3.Recordset.Fields("课序号") = Adodc1.Recordset.Fields("课序号")
                  Adodc3.Recordset.Fields("课程名称") = Adodc1.Recordset.Fields("课程名称")
                  Adodc3.Recordset.Fields("场次") = changci
                  Adodc3.Recordset.Fields("楼号") = Adodc4.Recordset.Fields("楼号")
                  Adodc3.Recordset.Fields("教室") = Adodc4.Recordset.Fields("教室编号")
                  Adodc3.Recordset.Fields("校区") = "南校"
                  Adodc3.Recordset.Fields("自然班数") = Adodc4.Recordset.Fields("自然班数")
                  Adodc3.Recordset.Update
                  n = n - Int(Adodc4.Recordset.Fields("自然班数"))
                  If n = 0 Then Exit Do
               End If
              Adodc4.Recordset.MoveNext
          Loop
    loop