??????????????为什么这个循环做不下去?

wuzhihua 2005-11-18 10:32:44
StrSql = "select * from cbklbjh"
Rs.CursorLocation = adUseClient
Rs.Open StrSql, Conn, adOpenDynamic, adLockOptimistic
Do While Not Rs.EOF
If Not (IsNull(Rs.Fields("nkbw")) Or IsNull(Rs.Fields("dw"))) Then
Adodc4.RecordSource = "select * from 表2 where bwid = '" + Rs.Fields("nkbw") + "' and dw = '" + Rs.Fields("dw") + "'"
Adodc4.Refresh
If Not Adodc4.Recordset.EOF Then
If Not IsNull(Adodc4.Recordset("mtmc")) Then
Rs.Fields("mtmc") = Adodc4.Recordset("mtmc")
End If
If Not IsNull(Adodc4.Recordset("bw")) Then
Rs.Fields("bw") = Adodc4.Recordset("bw")
End If
Rs.Update
End If
End If
Rs.MoveNext
Loop
就是cbklbjh中有两字段mtmc和bw要按条件到bw表中去取,但循环做不下去了,是什么原因???
...全文
105 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2005-11-19
  • 打赏
  • 举报
回复
把锁类型改为开放式批更新(adLockBatchOptimistic
),然后把代码中间的Rs.Update注释掉,在Loop后面批量更新试试
Rs.Open StrSql, Conn, adOpenDynamic, adLockBatchOptimistic
Do While ...
....
Loop
Rs.UpdateBatch '批量更新
clear_zero 2005-11-19
  • 打赏
  • 举报
回复
Rs.Open StrSql, Conn, adOpenDynamic, adLockOptimistic

adOpenStatic, adLockOptimistic /这样试试看
wuzhihua 2005-11-19
  • 打赏
  • 举报
回复
衷心感谢faysky2() ,这么晚还在看我看,谢谢
wuzhihua 2005-11-19
  • 打赏
  • 举报
回复
If Not Adodc4.Recordset.EOF Then
If Not IsNull(Adodc4.Recordset("mtmc")) Then
Rs.Fields("mtmc") = Adodc4.Recordset("mtmc")
End If
If Not IsNull(Adodc4.Recordset("bw")) Then
Rs.Fields("bw") = Adodc4.Recordset("bw")
End If

End If
原因错在这里
wuzhihua 2005-11-19
  • 打赏
  • 举报
回复
错误信息:键列信息不足或不正确,更新影响到多行
faysky2 2005-11-18
  • 打赏
  • 举报
回复
提示的错误是什么 ?
wuzhihua 2005-11-18
  • 打赏
  • 举报
回复
提示Rs.Update出错,字段更新后定位出错了吧
wuzhihua 2005-11-18
  • 打赏
  • 举报
回复
能执行到循环里去
faysky2 2005-11-18
  • 打赏
  • 举报
回复
如果没执行到循环里面去,说明Rs没有记录
faysky2 2005-11-18
  • 打赏
  • 举报
回复
按F8单步运行,或设置断点看是怎么运行的
wuzhihua 2005-11-18
  • 打赏
  • 举报
回复
就是cbklbjh中有两字段mtmc和bw要按条件到表2中去取,但循环做不下去了,是什么原因???

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧