如何获取现有记录的子表单上的先前值

时间:2013-04-30 10:03:22

标签: ms-access ms-access-2007 access-vba

有一天,有人可以帮助我解决这个问题我不认为这么复杂有一种方法可以做到但我无法弄明白。

我有4个字段
ID
营业时间
截止时间
日期

例如[营业时间]是8 [关闭时间]是16然后我的[营业时间]将变为16 默认情况下在新的现有记录上。

我将此代码放在我的默认值属性上,以便开放时间工作,但不能用于新记录的现有记录。

= Nz(DMax(“[Closing Hours]”,“PlantTransaction”))

实际上必须发生的是,当我输入记录时,我已经在子表单中获得了4条记录。开放时间8和结束时间16记录2开放时间必须变为默认值16而不是记录5,因为它跳过4条现有记录和自动跳转到记录5的新记录 在此先感谢希望你们中的一个人能够度过我的一天!

1 个答案:

答案 0 :(得分:0)

Access窗体中的“默认值”属性仅适用于新记录。您需要的是为新记录和现有记录执行此操作的一些代码。类似下面的内容应该适用于子表单的Current事件:

Private Sub Form_Current()
    Dim rst As DAO.Recordset

    If IsNull(txtOpening) Then
        Set rst = Me.RecordsetClone
        If rst.RecordCount > 0 Then
            If Me.NewRecord Then
                rst.MoveLast
            Else
                rst.Bookmark = Me.Bookmark
                rst.MovePrevious
            End If
            txtOpening = rst!Closing
        End If
    End If
End Sub

IsNull(txtOpening) IF语句只是为了确保您不会覆盖当前记录的开头价值(如果已经输入)。如果您总是希望在用户输入记录时覆盖它,则可以将其删除。