MS Access - 在表单中输入的数据当我关闭表单时自动保存

时间:2016-06-01 19:06:47

标签: access-vba ms-access-2010

我的任务是更新MS Access数据库及其表单。 每个表单似乎都链接到一个查询。如果我将数据输入到表单上的文本框中,然后关闭表单而不按“保存记录”按钮,则仍会向数据库添加一条新记录,这对于没有任何意义。

任何见解都会很棒,我是程序员,但在使用Access Forms和数据库方面经验不足。

感谢。

1 个答案:

答案 0 :(得分:5)

默认情况下,Microsoft Access会将表单绑定到数据,并且只要您在记录之间移动或关闭正在处理的表单,它就会自动保存数据。对于普通用户来说,这实际上是一件好事,因为即使您在编辑后不小心关闭了表单,也很难丢失数据。

如果此功能不是您要查找的内容,我建议从表单中删除绑定,即将Record Source属性设置为空白,然后使用未绑定控件操作代码中的所有数据。它更加繁琐,但它可以让你获得更多的控制权。

另一种选择是使用表单的BeforeUpdate事件来询问用户是否要在允许更改之前保存更改。

如果您的主要问题是意外添加新记录,请将Allow Additions属性设置为false,并以编程方式创建新记录。

BeforeUpdate事件过程的示例(相同的代码适用于BeforeInsert事件):

Private Sub Form_BeforeUpdate(Cancel As Integer)

  Dim intAns As Integer

  intAns = MsgBox("Are you sure you want to save this record?", vbQuestion + vbYesNo, "Save Record")
  If intAns = vbNo Then Cancel = 1

End Sub

如果您使用上述方法,并且用户单击“否”,则必须单击ESC键以撤消他们输入的更改。否则,当他们离开记录时,它会继续显示对话。