我的更新后访问宏有什么问题?

What is wrong with my Access After Update Macro?

我正在努力做到这一点,如果余额字段被更新,那么 AvailableCredit 就会自动计算出来。

这是作业,我不会问,除非我已经尝试了我能想到的一切来解决这个问题,加上我在互联网上找到的东西。我只是想了解我在这里做错了什么。

  If [Balance] <> [Old].[Balance] Then
    EditRecord
      SetField
        Name Available Credit
        Value= [Client].[CreditLimit]-[Client].[Balance]
  End If

首先让我说:数据宏是错误的方法。理想情况下,根本不应该存储可以轻松计算的数据。如果您需要在 table 视图中使用它,请使用计算字段。

你的数据宏没有什么问题,只是你需要一个 Before Change 宏,而不是 After Update 宏。您不应该更新更新后宏中的字段,因为更新会再次触发更新后宏,可能导致无限循环。相反,使用 Before Change 宏,将更改包含在更新中。

在那里,只需使用 Set Field 操作来更改字段。