在MS Access数据表子表单中导航和更新

时间:2014-05-06 14:04:34

标签: ms-access

我使用下面的代码在数据表视图中循环遍历子窗体的记录集并更新字段,这样我就可以避免执行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 个答案:

答案 0 :(得分:0)

您应该使用表单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