我的任务是更新MS Access数据库及其表单。 每个表单似乎都链接到一个查询。如果我将数据输入到表单上的文本框中,然后关闭表单而不按“保存记录”按钮,则仍会向数据库添加一条新记录,这对于没有任何意义。
任何见解都会很棒,我是程序员,但在使用Access Forms和数据库方面经验不足。
感谢。
答案 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键以撤消他们输入的更改。否则,当他们离开记录时,它会继续显示对话。