0

这应该很简单,但由于某种原因,它不断打开第二个表格作为新记录!我已经很多年没有创建数据库了,从那以后我有了两个孩子,所以请放轻松我的果冻大脑!

这是一个事故报告数据库,我们希望每次都在新窗口中运行每个问题部分,就像一个向导一样。第一部分询问是否要报告新事件或其他导航选项,报告新事件的命令很好,宏生成器,openform,表单名称:关于受影响的人02,将数据模式设置为“添加”到每次进入一个新的记录。到目前为止一切都很好。

当您填写姓名、地址等时,会生成一个表单 ID 自动编号,然后有一个按钮可以单击下一部分。我假设由于已经填写了 ID 并且已经在表中创建了该记录,因此如果我设置命令按钮以打开表单并根据 ID 进行过滤,那么它将出现在下一个表单中(ID 字段可见在每个表格的上角),但由于某种原因它没有过滤,只是在每个部分每次都显示一个新记录。每个部分都作为自己的记录独立保存。

我已经尝试通过宏生成器进行过滤(将数据模式设置为“编辑”这些后续表单)并且我尝试按照命令按钮向导并将两者链接起来,关系在那里,第一个表单仍然打开在这个时候,我想也许如果我设置宏以在另一个打开时关闭它,那么它就没有要查找的数据了?现在抓住稻草试图让它发挥作用,但我已经做了很多次这种事情,从来没有遇到过这个问题!

任何帮助或建议将不胜感激,谢谢!

4

2 回答 2

0

创建自动编号的事实并不意味着记录已创建,也不意味着记录已保存。如果用户点击撤消并退出,则永远不会保存数据,实际上会跳过自动编号并且永远不会使用。这解释了为什么在未发生删除时您经常会看到自动编号中的空白。

简单的解决方案是在启动其他/下一个表单之前,确保当前表单中的数据写入表中。下面的代码将实现这个目标:

If me.dirty = true then me.dirty = false

Docmd.OpenForm "Form2",,,"id = " & me!id

所以第一行强制保存记录,第二行代码将启动第二个表单到我们所在的当前记录。

于 2016-07-26T17:34:20.147 回答
0

我想我已经到了那里......经过很多挫折!如果其他人正在寻找解决此问题的方法,Albert D. Kallal 是对的,它是在保存数据,但它首先打开了新表单,然后在关闭之前的表单时,它正在保存数据以便它出现在我的表中,但尚不存在以被拉到下一个表格。简单修复,更改宏命令的顺序。我希望他建议的代码如果不是在患有严重婴儿大脑病例的人手中也会起作用......

于 2016-07-28T13:09:36.320 回答