TastyWheat
Registered User.
- Local time
- Today, 13:44
- Joined
- Dec 14, 2005
- Messages
- 125
I have code in a BeforeUpdate subroutine of a text box to validate the date. The user can choose to keep or discard the value but the warning only appears if the date is in the future or at least a month old. This is my code:
It works fine when I answer "Yes" but if I hit "No" I get this message: The value in the field or record violates the validation rule for the record or field.
This control doesn't have a validation rule. In fact, there are no validation rules in any of the controls on this form nor on any of the attributes in the control source (table). The date is a required attribute of the table though. I can't hide this extra error message by turning off warnings because it happens after I exit the subroutine, so I wouldn't be able to turn the warnings back on. I also can't trap this error because it occurs after the subroutine ends.
If possible I would want the text box to be cleared and be focused if the user selects "No" to discard the date.
Code:
Private Sub txtDate_BeforeUpdate(Cancel As Integer)
Dim dtCurrent As Date
Dim objResult As VbMsgBoxResult
If (Trim(txtDate) = "" Or IsNull(txtDate)) Then
Exit Sub
End If
objResult = vbYes
dtCurrent = CDate(txtDate)
If (dtCurrent > DateTime.Date) Then
objResult = MsgBox("This date is in the future. Are you sure you wish to leave this value?", vbYesNo, "Warning")
ElseIf (DateDiff("m", dtCurrent, DateTime.Date) > 1) Then
objResult = MsgBox("This date is at least one month old. Are you sure you wish to leave this value?", vbYesNo, "Warning")
End If
If (objResult = vbNo) Then
Cancel = True
End If
End Sub
This control doesn't have a validation rule. In fact, there are no validation rules in any of the controls on this form nor on any of the attributes in the control source (table). The date is a required attribute of the table though. I can't hide this extra error message by turning off warnings because it happens after I exit the subroutine, so I wouldn't be able to turn the warnings back on. I also can't trap this error because it occurs after the subroutine ends.
If possible I would want the text box to be cleared and be focused if the user selects "No" to discard the date.