使用 VBA 更新 Access 2007 中的表单记录集

问题描述 投票:0回答:4

我正在进行一些访问开发,并且遇到了一个问题,我需要确保在按钮 OnClick 处理程序中更新表单。

我想它可能会像这样工作:

if me.dirty then
    me.update     'This is a nonexistent form method'
end if
<rest of handler>

如果存在这种情况,我是否必须手动调用 OnUpdate 事件处理程序?

ms-access vba ms-access-2007
4个回答
2
投票

怎么样:

if me.dirty then
    me.dirty=false 
end if

按照 Allen Browne(MVP)编写的代码:

http://allenbrowne.com/bug-01.html


1
投票

我会避免使用 .RunCommand 版本,因为在某些情况下 Me.Dirty = False 会起作用并且无法访问菜单命令。

另一方面,Me.Dirty 一直让我觉得它应该是只读的,但事实并非如此。


0
投票

我总是在 Save_Click 处理程序中使用此代码

If Me.Dirty Then    
  DoCmd.RunCommand acCmdSaveRecord   
End If

0
投票

我很高兴我偶然发现了这篇文章,即使它是在这么晚的日期。我不知道这是 Access 中的一个错误,我只是假设我做错了什么,导致我在关闭表单时丢失数据(好吧,无论如何,部分时间)。通过一些试验和错误,我发现在关闭表单之前强制表单中的记录集转到下一条记录将保存我的数据。我在 Exit_Click 子程序中使用了以下代码:

DoCmd.GoToRecord , , acNext

现在我要改用设置,因为这似乎是首选方法。谁知道呢,可能有些情况下移动记录指针不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.