我在这里看到了一些回答,但没有一个适合我。
我有一个带有有界输入的表单,我希望用户能够编辑。 但是,当用户更改字段,然后关闭表单 - 即使不单击“更新”按钮 - 它也会更改数据库中的数据。
有没有办法验证只有在按下“更新”按钮时才会更改数据?
感谢
答案 0 :(得分:1)
您可以执行以下操作:
1)以“ButtonPressed”形式定义全局变量,并在输入表单或记录时将其设置为false(例如OnCurrent)。
2)在Form_BeforeUpdate()中输入以下代码:
If Not ButtonPressed Then Cancel = True
3)在Button_Click()中输入以下代码:
ButtonPressed = True
DoCmd.RunCommand acCmdSaveRecord
4)在Form_AfterUpdate()中更新表单后重置ButtonPressed 整个代码应如下所示:
Option Compare Database
Option Explicit
Dim ButtonPressed As Boolean
Private Sub Button_Click()
ButtonPressed = True
DoCmd.RunCommand acCmdSaveRecord
End Sub
Private Sub Form_AfterUpdate()
ButtonPressed = False
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not ButtonPressed Then Cancel = True
End Sub
Private Sub Form_Current()
ButtonPressed = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
Me.Undo
End Sub
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 2169 Then
Response = True
End If
End Sub