ACC: How to Replace the Default Input Mask Error Message
ID: Q120567
|
The information in this article applies to:
-
Microsoft Access versions 2.0, 7.0, 97
SUMMARY
Advanced: Requires expert coding, interoperability, and multiuser skills.
This article shows you how to substitute your own custom message for
the generic error message that occurs when you violate an input mask.
The generic error message for input mask violation is:
The value you entered isn't appropriate for the input mask
'!\(999") "000\-0000;;_' specified for this field.
This article assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to your version of the
"Building Applications with Microsoft Access" manual.
NOTE: Visual Basic for Applications is called Access Basic in Microsoft
Access version 2.0. For more information about Access Basic, please refer
to the "Building Applications" manual.
MORE INFORMATION
You can trap input mask violations and substitute your custom error
message for the generic error message in the form's Error event. The
following sample Visual Basic code demonstrates this method:
In Microsoft Access 7.0 and 97:
Private Sub Form_Error (DataErr As Integer, Response As Integer)
Const INPUTMASK_VIOLATION = 2279
If DataErr = INPUTMASK_VIOLATION Then
MsgBox "There was an input mask violation!"
Response = acDataErrContinue
End If
End Sub
In Microsoft Access 2.0:
Sub Form_Error (DataErr As Integer, Response As Integer)
Const INPUTMASK_VIOLATION = 2279
If DataErr = INPUTMASK_VIOLATION Then
MsgBox "There was an input mask violation!"
Response = DATA_ERRCONTINUE
End If
End Sub
Setting the Response parameter to acDataErrContinue (or DATA_ERRCONTINUE
in version 2.0) lets you ignore the error and continue without displaying
the default error message. You can then supply a custom error message in
place of the default.
If you have multiple controls on your form with different input masks, you
can use Screen.ActiveControl.Name to get the name of the control causing
the error. The following sample code demonstrates this method for a form
with phone number, social security number, and ZIP code fields:
In Microsoft Access 7.0 and 97:
Private Sub Form_Error (DataErr As Integer, Response As Integer)
Const INPUTMASK_VIOLATION = 2279
Dim Msg As String
If DataErr = INPUTMASK_VIOLATION Then
Select Case Screen.ActiveControl.Name
Case "Phone"
Beep
MsgBox "The phone number you entered is invalid!"
Case "SSN"
Beep
MsgBox "The SSN you entered is invalid!"
Case "Zip"
Beep
MsgBox "The ZIP code you entered is invalid!"
Case Else
Beep
Msg = "An input mask violation occurred in control "
Msg = Msg & Screen.ActiveControl.Name & "!"
End Select
Response = acDataErrContinue
End If
End Sub
In Microsoft Access 2.0:
Sub Form_Error (DataErr As Integer, Response As Integer)
Const INPUTMASK_VIOLATION = 2279
Dim Msg As String
If DataErr = INPUTMASK_VIOLATION Then
Select Case Screen.ActiveControl.Name
Case "Phone"
Beep
MsgBox "The phone number you entered is invalid!"
Case "SSN"
Beep
MsgBox "The SSN you entered is invalid!"
Case "Zip"
Beep
MsgBox "The ZIP code you entered is invalid!"
Case Else
Beep
Msg = "An input mask violation occurred in control "
Msg = Msg & Screen.ActiveControl.Name & "!"
End Select
Response = DATA_ERRCONTINUE
End If
End Sub
REFERENCES
For more information about the Error event procedure, search the Help
Index for "Error."
For more information about the Screen object, search the Help Index for
"Screen."
Additional query words:
Keywords : kberrmsg kbusage
Version : WINDOWS:2.0,7.0,97
Platform : WINDOWS
Issue type : kbhowto