关闭绑定表单而不保存更改

时间:2013-01-03 20:14:28

标签: vba ms-access

快速提问,希望找到一个简明明智的解决方案。

我有一个纯粹用于数据输入的绑定表单(无法浏览记录,只能插入它们)。 我会有很多用户搞砸了。为避免脏数据,我希望他们在提交记录之前确认表单是否正确。

问题是,只要我在表单上输入ANYTHING,访问就会创建并保存记录。

如果用户点击“提交”,我希望仅保存和提交记录。如果他们单击关闭或退出应用程序,我不希望在数据库中部分完成该记录。

如果不使用未绑定的表单并调用insert函数,是否有一个简单的解决方案?

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码创建一个清除按钮,以防用户出错并想要清除整个表单并重新开始。

Private Sub btnClear_Click() 
  If Me.Dirty = True Then
    DoCmd.RunCommand acCmdUndo
    Exit Sub
  End If
End Sub`

我有时会发现before_update事件很奇怪,所以我通常会禁用属性中的close(x)按钮并添加一个我自己的关闭按钮,提示用户是否要放弃屏幕上的数据。

Private Sub close_Click()
 Dim Answer As Integer
 If Me.Dirty = True Then
    Dim Response As Integer
    ' Displays a message box with the yes and no options.
    Response = MsgBox(Prompt:="Do you wish to discard data?", Buttons:=vbYesNo)
    ' If statement to check if the yes button was selected.
    If Response = vbYes Then
        DoCmd.RunCommand acCmdUndo
        DoCmd.Close
        Else
        Me.Clear.SetFocus
    End If
 Else
    ' The no button was selected.
    DoCmd.Close
  End If
End Sub