【发布时间】:2016-10-01 07:20:50
【问题描述】:
我的任务是更新 MS Access 数据库及其表单。 每个表单似乎都链接到一个查询。如果我在表单上的文本框中输入数据,然后在不按“保存记录”按钮的情况下关闭表单,则新记录仍会添加到数据库中,这没有任何意义。
任何见解都会很棒,我是一名程序员,但很少有使用 Access 表单和数据库的经验。
谢谢。
【问题讨论】:
标签: ms-access vba ms-access-2010
我的任务是更新 MS Access 数据库及其表单。 每个表单似乎都链接到一个查询。如果我在表单上的文本框中输入数据,然后在不按“保存记录”按钮的情况下关闭表单,则新记录仍会添加到数据库中,这没有任何意义。
任何见解都会很棒,我是一名程序员,但很少有使用 Access 表单和数据库的经验。
谢谢。
【问题讨论】:
标签: ms-access vba ms-access-2010
默认情况下,Microsoft Access 将表单绑定到数据,并在您在记录之间移动或关闭正在处理的表单时自动保存数据。对于普通用户来说,这实际上是一件好事,因为即使您在编辑后不小心关闭了表单,也很难丢失数据。
如果此功能不是您想要的,我建议从表单中删除绑定,即将 Record Source 属性设置为空白,然后使用未绑定控件处理代码中的所有数据。它更加繁琐,但它为您提供了更多控制权。
另一种选择是使用表单的 BeforeUpdate 事件来询问用户是否要在允许他们通过之前保存他们的更改。
如果您主要担心意外添加新记录,请将 Allow Additions 属性设置为 false,并以编程方式创建新记录。
更新前事件过程的示例(相同的代码适用于 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 键来撤消他们输入的更改。否则,当他们离开记录时,它会继续显示对话。
【讨论】: