【发布时间】:2012-02-22 23:07:23
【问题描述】:
我在 Microsoft Access 中有一个数据库表。我想将其中一个字段的默认值分配给同一张表中较早出现的另一个字段。
我尝试了=[Form1].[AssignedByes] 的值,但没有运气,同样尝试=[AssignedByes],但没有运气。
谁能帮忙?
我分配值的字段名称是[RemainingByes],分配值的字段是[AssignedByes]。
【问题讨论】:
标签: ms-access
我在 Microsoft Access 中有一个数据库表。我想将其中一个字段的默认值分配给同一张表中较早出现的另一个字段。
我尝试了=[Form1].[AssignedByes] 的值,但没有运气,同样尝试=[AssignedByes],但没有运气。
谁能帮忙?
我分配值的字段名称是[RemainingByes],分配值的字段是[AssignedByes]。
【问题讨论】:
标签: ms-access
为了解决这个问题,我创建了一个基本上用作表的查询。在创建其他查询、表单等时,我使用它而不是表。
我猜您将 [AssignedByes] 复制到 [RemainingByes] 中,因为 [RemainingByes] 将以 [AssignedByes] 的值开始,但您希望以后能够更改它。
因此,您可以使用称为 [xRemaningByes] 的计算字段设置查询。您将在 [RemainingBye] 中输入更改后的值。然后在 [xRemainingByes] 中设置一个公式,如果有则返回 [RemainingByes] 的值,如果没有则返回 [AssignedByes] 的值。
[xRemainingByes]: Iif([IsNull([RemainingByes],[AssignedByes], [RemainingByes]。
当您使用 Query 而不是 Table 时,您将使用 [xRemainingByes],这是 Query 的计算字段,而不是 Table 的字段 [RemainingByes]。
[xRemainingByes]: Iif([IsNull([RemainingByesOverride],[AssignedByes], [RemainingByesOverride]
【讨论】:
在创建新记录时应用字段的默认值。所以你不能使用 [AssignedByes] 作为 [RemainingByes] 的默认值,因为 [AssignedByes] 还没有值。
OTOH,如果您为 [AssignedByes] 分配了默认值属性,请为 [RemainingByes] 使用相同的属性。
如果您的 Access 版本是 2010,请查看是否可以使用数据宏作为伪触发器来完成您想要的操作。
您也可以尝试将表单绑定到表格。在绑定到[AssignedByes]的控件的更新后事件中,可以为绑定到[RemainingByes]的另一个控件赋值。这可以让您在表单中执行您需要的操作,但不会申请在表单之外进行的更改。
【讨论】: