我正在尝试将一个值写入Access中的表单中。我将代码放入Form_current事件代码中,认为这样可行,但我得到了意想不到的结果。它正在写入以前的记录。因此,例如,如果我从记录A转到记录B,它会将值写入记录A中的字段。奇怪的是,如果我有一个消息框显示字段的值,它将显示记录B中的值。这是非常简单的代码,但这就是我所拥有的。我尝试了RefreshRecord和DoEvents,因为我认为它们可能有所帮助,但他们没有。
CreateDatabaseScript()
对此有任何帮助将不胜感激。我之前在Excel中使用过VBA,但从未真正使用过Access
答案 0 :(得分:1)
Form_Current
可以重复触发...而不是只在表单首次打开时触发一次。
来自 Form.Current Event 帮助主题...
焦点移动到记录时发生,使其成为当前记录, 或者当表格被刷新或重新获得时。
因此,使用您的代码,在您从记录A导航到记录B后,您已更新记录A的Record_lock
和Locked_by
值并不奇怪。
此时,记录B已成为"当前记录",因此它也应具有这些更新值。您使用MsgBox
确认了这一点。但是,对该记录的更改可能尚未保存,这意味着您还不会在源表中看到它们。
如果剩下的问题是您没有看到表单中显示的更新记录B值,请在Me.Refresh
之前的单独行中添加End Sub
。
答案 1 :(得分:1)
我想先发表评论,但我是新用户。在修改字段之前,您是否尝试刷新记录?