我有一个数据输入表单,它对源表中的数据运行简单的数据验证规则(工作正常)。现在,如果我向下滚动以跳转到包含无效数据的下一条记录,我将被提示更改它。
但是我的表单有一个简单的关闭按钮
DoCmd.Close
操作,单击按钮意味着不会提示用户更改数据 - 而是丢失记录。我在这做错了什么?这并不是警告被设置为关闭,因为我甚至尝试添加
DoCmd.SetWarnings True
关闭之前,以防万一就是问题。
答案 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