访问 - 仅使用按钮控件更新表单

时间:2016-01-28 10:54:11

标签: forms ms-access

我在这里看到了一些回答,但没有一个适合我。

我有一个带有有界输入的表单,我希望用户能够编辑。 但是,当用户更改字段,然后关闭表单 - 即使不单击“更新”按钮 - 它也会更改数据库中的数据。

有没有办法验证只有在按下“更新”按钮时才会更改数据?

感谢

1 个答案:

答案 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