1

我是 VBA 和 Access 的新手,并且继承了一个需要改进的数据库。

我在 Access 中有一个表格,显示了一个用于编辑的表格: 在此处输入图像描述

当表中的人工费率值发生变化时,我需要运行以下查询来更新另一个表:

update finishedproduct set labourrate = newvalue where labourrate = oldvalue;

(是的,这个数据库的设计很糟糕。)

  • 我可以处理哪个事件来应对劳动力价格的变化?

  • 如何获取该字段的先前值,然后获取该字段的新值?

  • 我不知道的事情:当用户更改此网格中的人工费率值时,表格是否会立即更新?

4

1 回答 1

3

您可以使用表单的 BeforeUpdate 事件并OldValue具有先前的值(Value是新值):

Private Sub Form_BeforeUpdate(Cancel As Integer)
    MsgBox Me.txtLabourRate.OldValue
    MsgBox Me.txtLabourRate.Value
End Sub

这发生在记录更新之前。您不能使用AfterUpdateForm 的事件,因为OldValue它将与新值相同。

BeforeUpdate 发生在记录更新之前。记录将被更新 - 除非Cancel参数专门设置为True. 表单有Current事件,但这发生在记录更新后,旧/值将反映当前行的事件 - 他们已移动到的行。

可以使用AfterUpdate表单的事件,但没有必要:使用BeforeUpdate. 为了使用AfterUpdate,您需要使用Current事件将旧/当前值存储在变量中。


当字段更改时,记录不会立即更新,但是当它们离开当前行(记录)时,会更新整个记录。

于 2013-07-31T10:31:20.303 回答