【发布时间】:2015-06-04 22:31:27
【问题描述】:
从this question 开始,我将如何将生成的日期值写入位于表单中的字段 (DEADLINE (25 WD))?
(该字段位于链接到表格的表单中。)
【问题讨论】:
-
到一个字段?在查询中?形式?设置是什么?
-
该字段位于链接到表格的表单中 - (问题已更新)。
标签: vba ms-access read-write
从this question 开始,我将如何将生成的日期值写入位于表单中的字段 (DEADLINE (25 WD))?
(该字段位于链接到表格的表单中。)
【问题讨论】:
标签: vba ms-access read-write
真正的解决方案是不存储此“计算”,而是在需要的时间和地点使用它。计算属于不在表中的查询。最好在查询中使用而不是使用表单方法存储在表中的原因是,当DateOpened 更改时,截止日期会自动更新。 但是只有在您使用表单编辑信息时才会发生这种情况。如果您直接在表格中编辑日期或使用查询更新记录,则截止日期将不一致。
但是,如果您使用类似
的查询SELECT
DateOpened,
addWorkDays(25, DateOpened) As Deadline
FROM
yourTable;
这将基于 DateOpened 工作,就像运行查询时一样。即使它在查询中被更改(当它打开时),截止日期也会相应地更新。当您使用表单将计算存储回表时,您会失去这种灵活性。
话虽如此,因为您需要根据另一个字段来计算;我建议您使用 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
由于控件已绑定到表格,因此无需运行更新代码。这将自动填写截止日期。
【讨论】:
Date opened 和 25WD。函数addWorkDays 设置为25WD 的控制源。谢谢。