访问Form_current中的VBA代码更新以前的记录,而不是当前记录

时间:2016-06-30 16:20:11

标签: ms-access access-vba

我正在尝试将一个值写入Access中的表单中。我将代码放入Form_current事件代码中,认为这样可行,但我得到了意想不到的结果。它正在写入以前的记录。因此,例如,如果我从记录A转到记录B,它会将值写入记录A中的字段。奇怪的是,如果我有一个消息框显示字段的值,它将显示记录B中的值。这是非常简单的代码,但这就是我所拥有的。我尝试了RefreshRecord和DoEvents,因为我认为它们可能有所帮助,但他们没有。

CreateDatabaseScript()

对此有任何帮助将不胜感激。我之前在Excel中使用过VBA,但从未真正使用过Access

2 个答案:

答案 0 :(得分:1)

表单打开时,

Form_Current可以重复触发...而不是只在表单首次打开时触发一次。

来自 Form.Current Event 帮助主题...

  

焦点移动到记录时发生,使其成为当前记录,   或者当表格被刷新或重新获得时。

因此,使用您的代码,在您从记录A导航到记录B后,您已更新记录A的Record_lockLocked_by值并不奇怪。

此时,记录B已成为"当前记录",因此它也应具有这些更新值。您使用MsgBox确认了这一点。但是,对该记录的更改可能尚未保存,这意味着您还不会在源表中看到它们。

如果剩下的问题是您没有看到表单中显示的更新记录B值,请在Me.Refresh之前的单独行中添加End Sub

答案 1 :(得分:1)

我想先发表评论,但我是新用户。在修改字段之前,您是否尝试刷新记录?