我有一个绑定到查询的表单(只是从表中选择)。
表单上有一个空白日期字段,当用户输入日期并点击“保存”时,按钮,我正在运行这个VBA:
If IsDate(Me.PaidDate) = True Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.OpenQuery "BeneEmployeePaidUnitsUpdateQry"
DoCmd.SetWarnings True
Else
Me.Dirty = False
' Omitted code
End If
Me.Refresh
Me.Requery
我正在运行的查询只是将另一个表中的字段设置为一个值,但前提是用户正在更新的表中的日期字段(表单上的日期字段)不为空。
现在,连续表单的问题似乎是,如果用户只输入日期并点击“保存”。按钮没有执行任何其他操作,日期不会立即保存到表中,并且查询不起作用,因为日期字段在被点击时仍然为空。
我尝试使用acCmdSaveRecord
来切角,但这似乎并不适合这种情况。
注意:连续表格中的每条记录都有'拥有Save
按钮。
为什么我需要在该字段的acCmdSaveRecord
事件上运行AfterUpdate
?这是我唯一的选择吗?连续表单是否仅在该记录失去焦点后才对绑定字段执行更新?
答案 0 :(得分:2)
此行为有时可归因于主键未包含在查询中。为了更新正确的记录,需要一个主要(或唯一)密钥。