1

我有一个大型关系 Access 2010 数据库。它是规范化的,并且包括一些非常慢的联合查询。因此,我认为我可以通过创建一些缓存字段来加快速度。例如在 tblOrder 我会创建一个 CustomerName 字段。为了维护这个缓存字段,我创建了一个更改前数据宏,它可以从 tblCustomer 中查找客户的公司名称。效果很好。然后我在 tblCustomer 中创建了一个 After Update 数据宏,因此当用户更改公司名称时,所有子记录都会自动更新。它起作用了,但随后触发了更改前数据宏,并且 dLookup 返回了旧的公司名称。任何帮助将不胜感激。

我使用 Northwing 数据库制作了我的问题示例。您可以在http://www.thetechmentors.com/freestuff/exerciseFiles/msAccess/DlookupDatamacroProblem.zip下载它的副本

4

1 回答 1

1

您需要做的就是调整 [tblOrder] 上的更改前数据宏,以便仅在该表中的 [CustomerID] 更改时进行名称查找。您可以使用如下Updated()函数执行此操作:

在此处输入图像描述

这样,当宏由于从 [tblCustomer] 上的更新后数据宏执行的更新而触发时,[tblOrder].[CustomerID] 值没有更改,因此绕过了名称查找。

于 2014-12-20T14:34:18.250 回答