更新表单上的记录

时间:2014-09-25 13:08:27

标签: vba ms-access ms-access-2007

我有一个绑定到查询的表单(只是从表中选择)。

表单上有一个空白日期字段,当用户输入日期并点击“保存”时,按钮,我正在运行这个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?这是我唯一的选择吗?连续表单是否仅在该记录失去焦点后才对绑定字段执行更新?

1 个答案:

答案 0 :(得分:2)

此行为有时可归因于主键未包含在查询中。为了更新正确的记录,需要一个主要(或唯一)密钥。