为Microsoft Access表字段分配默认值?

时间:2012-02-22 23:07:24

标签: ms-access

我在Microsoft Access中有一个数据库表。我想将其中一个字段的默认值分配给同一个表中较早发生的另一个字段。

我尝试了价值=[Form1].[AssignedByes]而没有运气,而=[AssignedByes]也是如此,但没有运气。

有人可以帮忙吗?

我将值分配给的字段名称为[RemainingByes],而分配值的字段为[AssignedByes]

2 个答案:

答案 0 :(得分:2)

为了解决这个问题,我创建了一个基本上用作表的Query。在创建其他查询,表单等时,我使用它代替表。

我猜你将[AssignedByes]复制到[RemainingByes]中,因为[RemainingByes]将以[AssignedByes]的值开始,但您希望以后能够更改它。

因此,您可以使用名为[xRemaningByes]的计算字段设置查询。您可以在[RemainingByes]中输入更改的值。然后在[xRemainingByes]中设置一个公式,如果有的话,返回[RemainingByes]的值,而不是,它返回[AssignedByes]的值。

[xRemainingByes]:Iif([IsNull([RemainingByes],[AssignedByes],[RemainingByes]。

当您使用Query而不是Table时,您将使用[xRemainingByes],这是Query的计算字段,而不是Table的字段[RemainingByes]。

<小时/> 另一个选择---
在表格中创建一个字段,例如[RemainingByesOverride],这将是您硬输入更改数据的位置。然后摆脱表中的[RemainingByes],只在查询中将其作为计算字段。

[xRemainingByes]:Iif([IsNull([RemainingByesOverride],[AssignedByes],[RemainingByesOverride]

答案 1 :(得分:1)

在创建新记录的瞬间应用字段的默认值。所以你不能使用[AssignedByes]作为[RemainingByes]的默认值,因为[AssignedByes]还没有值。

OTOH,如果您为[AssignedByes]指定了默认值属性,请为[RemainingByes]使用相同的属性

如果您的Access版本是2010,请查看您是否可以将数据宏用作伪触发器来完成您想要的操作。

您还可以尝试将表单绑定到表中。在绑定到[AssignedByes]的控件的更新后事件中,您可以将值赋给绑定到[RemainingByes]的另一个控件。这可以让您在表单中执行所需的操作,但不会申请在表单外部进行的更改。