在 MS Access 数据表子表单中导航和更新
Posted
技术标签:
【中文标题】在 MS Access 数据表子表单中导航和更新【英文标题】:navigating and updating in MS Access datasheet subform 【发布时间】:2014-05-06 14:04:34 【问题描述】:我使用下面的代码循环遍历数据表视图中子表单的记录集并更新字段,这样我就可以避免执行 SQL 更新,因为我还想在需要时手动更新,这样可以避免“数据有已被其他用户更改...”消息。
我的问题是,如果我在记录集中有 10 条记录,但光标位于表单上的第 5 条记录,那么只有从该点开始的记录才会更改,例如 5 到 10。 这不应该更新所有记录吗?我不知道为什么不是。
谢谢
Dim tmprs As DAO.Recordset
Dim fld As DAO.Field
Dim bkmrk As Variant
Set tmprs = Forms!frmtanks!Child67.Form.Recordset
bkmrk = Me.Bookmark
tmprs.MoveFirst
While Not tmprs.EOF
For Each fld In tmprs.Fields
If fld.name = "freeDays" Then
freeDays = fd
End If
Next
tmprs.MoveNext
Wend
Me.Bookmark = bkmrk
【问题讨论】:
【参考方案1】:您应该使用表单的RecordsetClone
进行更新。当您使用 MoveNext
/MovePrevious
类型函数时,这不会改变表单的活动记录,从记录集的第一条记录开始,并且不需要您使用书签移回记录。
Dim tmprs As DAO.Recordset
Dim fld As DAO.Field
Dim bkmrk As Variant
Set tmprs = Forms!frmtanks!Child67.Form.RecordsetClone
On Error GoTo Cant_Update
While Not tmprs.EOF
tmprs("freeDays") = fd
tmprs.Update
tmprs.MoveNext
Wend
【讨论】:
以上是关于在 MS Access 数据表子表单中导航和更新的主要内容,如果未能解决你的问题,请参考以下文章