更新表格上的记录
Posted
技术标签:
【中文标题】更新表格上的记录【英文标题】:Updating record on form 【发布时间】:2014-09-25 13:08:26 【问题描述】:我有一个绑定到查询的表单(只是从表中选择)。
表单上有一个空白日期字段,当用户输入日期并单击“保存”按钮时,我正在运行此 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
按钮。
为什么我需要在该字段的AfterUpdate
事件上运行acCmdSaveRecord
?那是我唯一的选择吗?连续表单是否仅在该记录失去焦点后才对绑定字段执行更新?
【问题讨论】:
是只有一个保存按钮还是每个表单都有自己的? @rontornambe 每个记录/行都有自己的保存按钮。这实际上是该功能所必需的。抱歉,我没有具体说明。 select 语句是什么样的?是否包含主键? @rontornambe 我想知道/认为/同意 sql 语句中缺少的 PK 确实是问题所在。我什至在 3 周前阅读了有关此的文档。感谢您的帮助! 不客气。 【参考方案1】:此行为有时可归因于查询中未包含主键的情况。为了更新正确的记录,需要一个主(或唯一)键。
【讨论】:
以上是关于更新表格上的记录的主要内容,如果未能解决你的问题,请参考以下文章