MS Access:保存子记录时更新父记录

时间:2013-02-12 16:54:22

标签: ms-access sql-update ms-access-2010

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

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

1 个答案:

答案 0 :(得分:0)

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

在许多数据库中,您可以使用触发器来完成此任务。无论是通过UI更新资产还是直接SQL查询,它都不会失败。但是,MS Access本身没有触发器。所以你只能在UI中这样做。

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

我也使用过HansUp的建议 - 即只是将位置/作业放在AssetMovements中,并在表格/报告上显示最新值。我不喜欢的是它使形式变得更复杂,如果你发生了很多更新,你最终可能会受到性能影响。

然后,再次,如果您的数据库变得足够大以至于性能损失是显而易见的,那么您可能应该将数据迁移到另一种数据库。

相关问题