这应该很简单,但由于某种原因,它一直将第二个表单作为新记录打开!我已经好几年没有创建数据库了,从那以后我有了两个孩子,所以请放松我的果冻大脑!
这是一个事故报告数据库,我们希望每次都在一个新窗口中运行它,就像一个向导一样。第一部分询问您是想报告新事件还是其他导航选项,报告新事件的命令很好,宏生成器,openform,表单名称:关于受影响的人02,将数据模式设置为"添加",每次进入新记录。到目前为止一切都很好。
当你填写姓名、地址等时,会生成一个表单ID自动编号,然后点击一个按钮进入下一部分。我假设,由于ID已经填写完毕,并且该记录已经在表中创建,如果我设置命令按钮打开表单并根据ID进行筛选,那么它就会出现在下一个表单中(ID字段在每个表单的上角都可见),但出于某种原因,它并没有进行筛选,只是在每个部分每次都会显示一条新记录。每个部分都独立保存为自己的记录。
我试着通过宏生成器进行筛选(将数据模式设置为"编辑"这些后续表单),并尝试按照命令按钮向导链接两者,关系就在那里,第一个表单此时仍然打开,因为我想,如果我将宏设置为关闭它,而另一个表单打开,那么它就没有数据可查找了?现在我在抓救命稻草,试图让它发挥作用,但我已经做了很多次这种事情,从来没有遇到过这个问题!!
如有任何帮助或建议,我们将不胜感激,谢谢!
创建自动编号并不意味着创建了记录,也不意味着保存了记录。如果用户的点击撤消并退出,那么数据将永远不会保存,事实上,自动编号将被跳过,也永远不会使用。这就解释了为什么在没有发生删除的情况下,您经常可以在自动编号中看到间隙。
简单的解决方案是在启动另一个/下一个表单之前,确保将当前表单中的数据写入表中。以下代码将实现此目标:
If me.dirty = true then me.dirty = false
Docmd.OpenForm "Form2",,,"id = " & me!id
因此,第一行强制保存记录,第二行代码将向我们所在的当前记录启动第二个表单。
我想我已经做到了。。。在经历了很多挫折之后!!如果其他人正在寻找这个问题的解决方案,Albert D.Kallal是对的,它正在保存数据,但它首先打开了新表单,然后当上一个表单关闭时,它正在存储数据,使其出现在我的表中,但还不存在,无法拉到下一个表单。简单的修复方法,更改了宏上命令的顺序。我想,如果不是在患有严重婴儿脑疾病的人手中,他建议的代码也会起作用。。。