ACC: How to Replace the Default Input Mask Error Message

Last reviewed: August 29, 1997
Article ID: Q120567
The information in this article applies to:
  • Microsoft Access version 2.0, 7.0, 97

SUMMARY

Advanced: Requires expert coding, interoperability, and multiuser skills.

This article describes 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 On Error event procedure, search the Help Index for "Error."

For more information about the Screen object, search the Help Index for "Screen."

Keywords          : kberrmsg kbusage PgmEvnt PgmHowTo
Version           : 2.0 7.0 97
Platform          : WINDOWS
Hardware          : x86
Issue type        : kbhowto


================================================================================


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: August 29, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.