在 MS Access 中计算日期,然后将值写入 table 中的字段

Calculate date in MS Access then write value to a field in a table

开始,我将如何将结果日期值写入位于表单中的字段 (DEADLINE (25 WD))?

(该字段位于链接到 table 的表单中。)

真正的解决方案是不存储这个 "calculation",而是在需要的时候和需要的地方使用它。计算属于不在表中的查询。最好在查询中使用而不是使用表单方法存储在 tables 中的原因是,当 DateOpened 更改时,截止日期会自动更新。 但是 只有当您使用表单编辑信息时才会发生这种情况。如果您直接在 table 中编辑日期或使用查询更新记录,则截止日期将不一致。

但是,如果您使用

这样的查询
SELECT 
    DateOpened, 
    addWorkDays(25, DateOpened) As Deadline 
FROM 
    yourTable;

这将基于 DateOpened 工作,当查询为 运行 时。即使它在查询中发生变化(当它打开时),截止日期也会相应地更新。当您使用表单将计算存储回 table 时,您就失去了这种灵活性。

话虽这么说,因为您的需要是根据另一个字段来计算;我建议您使用 DateOpened 控件的 AfterUpdate 事件。

Private sub DateOpened_AfterUpdate()
    If Len(Me.DateOpened & vbNullString) <> 0 Then 
        Me.DeadlineDate = addWorkDays(25, DateOpened)
    Else
        Me.DeadlineDate = ""
    End If
End Sub

由于控件绑定到 table,因此不需要 运行 更新代码。这将自动填写截止日期。