2012-02-22 67 views
2

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

我试过值=[Form1].[AssignedByes]没有运气和=[AssignedByes]但没有运气相同。

任何人都可以帮忙吗?

我将值赋予的字段名称为[RemainingByes],并且赋值为的字段为[AssignedByes]

回答

2

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

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

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

[xRemainingByes]:IIF([ISNULL([RemainingByes],[AssignedByes],[RemainingByes]

当您使用的不是表查询,您将使用[xRemainingByes],这是查询的计算领域,而不是表的字段[RemainingByes。


另一种选择---
创建的表中的字段,如[RemainingByesOverride],这将是在这里你很难进入不断变化的数据,然后去掉表中的[RemainingByes],并且只将其作为计算字段的Query。

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

1

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

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

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

您也可以尝试将表格绑定到表格。在绑定到[AssignedByes]的控件的after update事件中,可以为绑定到[RemainingByes]的另一个控件分配一个值。这可以让您在表单中执行所需的操作,但不适用于在表单外进行的更改。

+0

叹息,这是一个相当麻烦的默认值限制。 – user7116 2013-04-09 01:22:21