MS Access - 表格中的第一条记录在表格关闭时被覆盖

时间:2015-09-15 20:39:44

标签: ms-access-2013

虽然我发现了一些与我的问题相近的谷歌搜索结果,但似乎没有人能够帮助他们。

我有一个更复杂的形式,我已经简化,试图缩小问题范围。

我有一个表单'编辑清单',允许编辑表'资产'。

在表格中,编辑库存是一个子表单,显示资产表和几个不同的字段。

子窗体上显示的内容基于组合框“cboRoomSelect”中选择的内容。 cboRoomSelect使用其RoomID查找“资产”表中的记录

所有这一切都运行正常,但是在关闭表单时,第一条记录(由于某种原因,“资产表”中的AssetID 5),'RoomID'将更改为cboRoomSelect框中最后选择的RoomID。

我对如何解决这个问题一无所知。它仅发生在第一条记录中,并且仅在关闭记录时发生。

结果,记录五不断弹出不属于它的房间。

在此之前我遇到了创建重复记录的问题,但我通过禁用要输入的新记录解决了这个问题。

我没有在此表单上使用任何代码,如有必要,我可以附加我的数据库。

https://drive.google.com/file/d/0BxQbzHNvYazQY3NXWDRZV1lwTjA/view?usp=sharing 链接到文档,查看“编辑表单测试”

这是一个MS Access文档,表单没有附加代码。

2 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。 最大的问题是确保在属性中: 形式>允许添加=否

我使用了代码:

Private Sub Form_BeforeUpdated(Cancel as Integer)
If Not (Me.NewRecord) Then
'If not a new record, Undo saving on form
Me.Undo
End If
End Sub

这是因为Access会在没有提示的情况下自动保存所有更改。 上述代码在Access决定保存之前激活,然后告诉它不要。

基本上代码读作为 在表单关闭时,在更新链接表之前, 如果没有新记录,或者何时表示关闭/中断自动保存功能。 撤消任何更改/不保存表单更改 结束论点。

答案 1 :(得分:0)

对于级联查找表单存在相同的问题。我终于给了表一个虚拟的第一条记录来覆盖。