【问题标题】:Assigning a default value to a Microsoft Access Table Field?为 Microsoft Access 表字段分配默认值?
【发布时间】:2012-02-22 23:07:23
【问题描述】:

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

我尝试了=[Form1].[AssignedByes] 的值,但没有运气,同样尝试=[AssignedByes],但没有运气。

谁能帮忙?

我分配值的字段名称是[RemainingByes],分配值的字段是[AssignedByes]

【问题讨论】:

    标签: ms-access


    【解决方案1】:

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

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

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

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

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


    另一种选择 ---
    在表中创建一个字段,例如 [RemainingByesOverride],这将是您硬输入更改数据的地方。然后去掉表中的[RemainingByes],只在Query中作为计算字段。

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 唉,这是一个相当麻烦的默认值限制。
      猜你喜欢
      • 2018-01-24
      • 2014-07-06
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 2019-10-04
      • 2011-10-14
      相关资源
      最近更新 更多