MS Access - table 中的第一条记录在表单关闭时被覆盖
MS Access - First record in table is overwritten on form close
虽然我发现了一些 google 接近我的问题的结果,但似乎没有人能够帮助他们。
为了缩小问题范围,我简化了一个更复杂的表格。
我有一个表格 'Edit Inventory' 允许编辑 table 'Assets'.
Edit Inventory 表单中有一个显示资产 Table 和几个不同字段的子表单。
子窗体上显示的内容基于在组合框中选择的内容 'cboRoomSelect'。 cboRoomSelect 使用其 RoomID 在 'Assets' Table
中查找记录
所有这些都工作正常,但是在关闭表单时,第一条记录(由于某种原因在 'Asset Table' 中是 AssetID 5)'RoomID' 被更改为最后选择的 RoomID cboRoomSelect 框。
我完全不知道如何解决这个问题。它只发生在第一条记录上,并且仅在关闭记录时发生。
因此,记录 5 不断出现在不属于它的房间中。
同样在此之前,我遇到了创建重复记录的问题,但我通过禁止输入新记录解决了这个问题。
我没有在此表单上使用任何代码,如有必要,我可以附上我的数据库。
https://drive.google.com/file/d/0BxQbzHNvYazQY3NXWDRZV1lwTjA/view?usp=sharing
Link 到文档,签出 'Edit Form Test'
这是一个 MS Access 文档,表格没有附加代码。
我终于解决了这个问题。
最大的问题是确保在属性中:
表格 > 允许添加 = 否
我使用了代码:
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 决定保存之前激活,然后告诉它不要保存。
基本上代码如下
在表单关闭时,在更新链接 Table 之前,
如果没有新记录,或者每当所述表格关闭/中断自动保存功能。
撤消任何更改/不保存表单更改
结束参数。
级联 look-up 表单也有同样的问题。我终于给了 table 一个虚拟的第一条记录来覆盖。
虽然我发现了一些 google 接近我的问题的结果,但似乎没有人能够帮助他们。
为了缩小问题范围,我简化了一个更复杂的表格。
我有一个表格 'Edit Inventory' 允许编辑 table 'Assets'.
Edit Inventory 表单中有一个显示资产 Table 和几个不同字段的子表单。
子窗体上显示的内容基于在组合框中选择的内容 'cboRoomSelect'。 cboRoomSelect 使用其 RoomID 在 'Assets' Table
中查找记录所有这些都工作正常,但是在关闭表单时,第一条记录(由于某种原因在 'Asset Table' 中是 AssetID 5)'RoomID' 被更改为最后选择的 RoomID cboRoomSelect 框。
我完全不知道如何解决这个问题。它只发生在第一条记录上,并且仅在关闭记录时发生。
因此,记录 5 不断出现在不属于它的房间中。
同样在此之前,我遇到了创建重复记录的问题,但我通过禁止输入新记录解决了这个问题。
我没有在此表单上使用任何代码,如有必要,我可以附上我的数据库。
https://drive.google.com/file/d/0BxQbzHNvYazQY3NXWDRZV1lwTjA/view?usp=sharing Link 到文档,签出 'Edit Form Test'
这是一个 MS Access 文档,表格没有附加代码。
我终于解决了这个问题。 最大的问题是确保在属性中: 表格 > 允许添加 = 否
我使用了代码:
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 决定保存之前激活,然后告诉它不要保存。
基本上代码如下 在表单关闭时,在更新链接 Table 之前, 如果没有新记录,或者每当所述表格关闭/中断自动保存功能。 撤消任何更改/不保存表单更改 结束参数。
级联 look-up 表单也有同样的问题。我终于给了 table 一个虚拟的第一条记录来覆盖。