0

美好的一天,有人可以帮我解决这个问题,我认为这并不复杂,有一种方法可以解决,但我无法弄清楚。

我有 4 个字段
ID
营业时间
关闭时间
日期

例如 [Opening Hours] 是 8 [Closing Hours] 是 16 那么我的 [Opening Hours] 在新的现有记录上将默认变为 16。

我将此代码放在我的默认值属性上,以使其正常工作,但不适用于现有记录,仅用于新记录。

=Nz(DMax("[关闭时间]","PlantTransaction"))

实际必须发生的是,当我输入记录一时,我现在已经在子表单中获得了 4 条记录,Open Hours 8 和 Closing Hours 16 记录了两条 Open Hours 必须成为默认值 16 而不是记录 5,因为它跳过了 4 条现有记录并自动跳转到一个新的记录,比如记录 5
提前谢谢希望你们中的一个能让我开心!!!

4

1 回答 1

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

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

于 2013-04-30T16:51:42.380 回答