MS Access数据验证规则未在表单关闭上运行

时间:2014-10-16 08:16:25

标签: ms-access

我有一个数据输入表单,它对源表中的数据运行简单的数据验证规则(工作正常)。现在,如果我向下滚动以跳转到包含无效数据的下一条记录,我将被提示更改它。

但是我的表单有一个简单的关闭按钮

DoCmd.Close

操作,单击按钮意味着不会提示用户更改数据 - 而是丢失记录。我在这做错了什么?这并不是警告被设置为关闭,因为我甚至尝试添加

DoCmd.SetWarnings True

关闭之前,以防万一就是问题。

1 个答案:

答案 0 :(得分:0)

或者,您可以尝试在Form的BeforeUpdate事件中添加验证,如果存在验证错误,则取消关闭表单,如下所示:

    Private blnCancelFormClose As Boolean

    Private Sub Form_BeforeUpdate(Cancel As Integer)
        Dim dblWeight As Double

        dblWeight = Nz(Me.Weight)

        If (dblWeight = 0) Or (dblWeight > 0.25 And dblWeight < 100) Then
            MsgBox "Please enter a valid case weight in kilograms!", vbExclamation, Me.Caption
            Me.Weight.SetFocus
            blnCancelFormClose = True
            Cancel = True
        Else
            blnCancelFormClose = False
        End If
    End Sub

    Private Sub Form_Unload(Cancel As Integer)    
        If blnCancelFormClose = True Then
            Cancel = True
        End If
    End Sub