【问题标题】:navigating and updating in MS Access datasheet subform在 MS Access 数据表子表单中导航和更新
【发布时间】: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

【问题讨论】:

    标签: ms-access


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多