0

我创建了 2 个表;资产和资产运动。我还创建了主资产表单和资产移动表单。AssetMovements 表单本质上是 Assets 表单的副本,但它具有 AssetMovements 表作为它的记录源。我在 AssetMovements 表(AssetTag 字段)中创建了一个查找,因此用户可以从组合框中选择一个资产标签,该资产的详细信息将自动填充到表单上的其余字段中。表单上唯一可编辑的字段是指员工的“位置”和“分配给”字段。现在,一切正常,但问题是,如果我使用 AssetMovements 表单创建新记录并保存它,则位于“资产”表中的原始记录中的“位置”字段将不会更新。同样如此为了 '

每当在该记录上创建新的 AssetMovement 时,是否有办法更新 Assets 表中的主要资产记录?

4

1 回答 1

0

听起来您正在尝试做的是跟踪资产的历史(它属于哪里和谁)。执行此操作的自然方法是更新资产,并在 AssetMovements 表中记录更改。

在许多数据库中,您可以使用触发器来完成此操作。无论您是通过 UI 还是直接 SQL 查询更新资产,它都不会失败。但是,MS Access 本身没有触发器。因此,您将仅限于在 UI 中执行此操作。

您可以在 UI 中通过将更新后事件添加到表单并将更改的记录复制到 AssetMovements 来执行此操作。不是反过来。否则,在新资产的情况下,您将首先创建 AssetMovement,然后再创建资产。

我也使用了 HansUp 的建议 - 即将位置/分配放入 AssetMovements,并在表单/报告中显示最新值。我对此不满意的是,它使表单更加复杂,如果您有很多更新发生,您最终可能会受到性能影响。

再说一次,如果您的数据库变得足够大以至于性能受到明显影响,那么您可能应该将数据迁移到另一种数据库。

于 2013-02-12T19:24:59.653 回答