2009-08-19 52 views
0

我完全丧失了,表格只是改变了我的行为;它正在工作,然后停下来没有明显的原因。我从一个按钮打开它:为什么NewRecord属性对我说谎?

DoCmd.openForm "formName", , , "ID=" & Me.ID 

调试跟踪显示此值正确设置在这一点上。当表单加载时,我需要使用OnCurrent事件来设置一些显示项目。

Private sub Form_Current() 
    if Me.NewRecord Then 

在这一点上,它说,没有记录,调试信息表示,该记录是BOF和EOF,因为如果查询不匹配。但是,如果我在那一刻运行保存的查询,它会显示正确的信息。此外,如果我停止执行,将表单打开,然后再次点击该按钮,则确实正确加载数据。我很难过。

编辑 - 从备份导入表单并重新输入更改后,整个问题就消失了。我猜腐败,但它是如何搞砸的,这是一个谜。

+0

如果你想发布你的解决方案,这是从备份导入的形式,我会投票。你也可以看看反编译。 – Fionnuala 2009-08-20 09:09:59

+0

也许你有一个保存的过滤器干扰了传入的WHERE标准。这是访问表单和报告的长期烦恼。 – 2009-08-20 19:18:02

回答

1

重命名问题表单,然后从备份导入表单修复它。重新命名是明智的,如果您需要扫描备份以来的更改。

感谢Remou,我也忘记了/反编译选项,它可能已经修复了它。

虽然我回答了这个问题,但我还应该补充:不要运行前端表单的两个副本,无论是在同一台计算机上还是跨越网络的多台计算机上......拆分数据并确保每个前端进程有它自己的前端副本。我认为这导致了形式腐败。