注册 登录
编程论坛 ACCESS论坛

ADO中记录集的update方法一次只能更新记录集中的一条记录吗?

zyxyklh 发布于 2023-04-22 20:02, 615 次点击
ADO中记录集的update方法一次只能更新记录集中的一条记录吗?

像这样写就是对的:
Private Sub Command0_Click()
  Dim rst As DAO.Recordset
  Set rst = CurrentDb.OpenRecordset("tbl单位信息")
  rst.Edit
  rst.MoveFirst
  Do While Not rst.EOF
    rst!学校联系人 = "大嘴猴"
    rst.MoveNext
  Loop
  rst.Update
  rst.Close
End Sub

这样写却不行:
Private Sub Command0_Click()
  Dim rst As DAO.Recordset
  Set rst = CurrentDb.OpenRecordset("tbl单位信息")
  rst.Edit
  rst.MoveFirst
  Do While Not rst.EOF
    rst!学校联系人 = "大嘴猴"
    rst.MoveNext
  Loop
  rst.Update
  rst.Close
End Sub

是不是update方法一次只能更新记录集中的一条记录?
3 回复
#2
厨师王德榜2023-04-24 14:20
这个Edit的操作是针对单条、当前数据进行操作的.所以要改为
  Do While Not rst.EOF
    rst.Edit
    rst!学校联系人 = "大嘴猴1"
    rst.Update
    rst.MoveNext
  Loop
循环体外的 rst.Edit 和 rst.Update 两句注释掉.

[此贴子已经被作者于2023-4-24 14:29编辑过]

#3
厨师王德榜2023-04-24 14:28
如果不想这样一笔笔遍历,那就用SQL语句 :
Dim qstr As String

qstr = "Update tbl单位信息 set [学校联系人]='大嘴猴' where 1=1"
CurrentDb.Execute qstr
#4
zyxyklh2023-04-26 11:29
回复 2楼 厨师王德榜
"这个Edit的操作是针对单条、当前数据进行操作的"——我明白了,非常感谢!
1