访问:如何打开第二个表单到第一个相同的记录?

时间:2016-07-26 14:30:26

标签: forms ms-access search filter openform

这应该是如此简单,但由于某种原因,它会继续打开第二张表格作为新记录!我已经创建了一个数据库多年,从那以后就生了两个孩子,所以请在我的果冻大脑上轻松一点!

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

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

我尝试过滤宏构建器(将数据模式设置为"编辑"对于这些后续表单)并且我尝试按照命令按钮向导并将两者连接起来关系在那里,第一种形式在这个时候仍然是开放的,因为我认为如果我设置宏来关闭它,因为另一个打开然后它不会有数据要查找?现在抓着稻草试着让它起作用,但我已经做了很多次这样的事情,从来没有遇到过这个问题!

非常感谢任何帮助或建议,谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

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

因此第一行强制记录保存,第二行代码将第二行启动到我们所在的同一当前记录。

答案 1 :(得分:0)

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