ACC: How to Turn Off "Break on All Errors" Option in CodeID: Q167855 
  | 
This article shows you how to turn off the "Break on All Errors" option in
Visual Basic for Applications code to prevent users from interrupting your
error handling routines.
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.
Even when your code contains error handling routines, if you share the database with a user who has the "Break on All Errors" option turned on in Microsoft Access, a run-time error causes your code to halt and open the module containing the error. If you do not want users to handle your run- time errors, you can create procedures that suspend the "Break on All Errors" option while your code is running.
Dim varOldBOAEOptions As Variant 
      '-----------------------------------------------------------------
      ' Save the current setting for the "Break on All Errors" option
      ' Turn off the "Break on All Errors" option.
      '-----------------------------------------------------------------
      Public Sub SuspendBreaks()
      Select Case Application.SysCmd(acSysCmdAccessVer)
         Case "7.0"
            varOldBOAEOptions = GetOption("Break On All Errors")
            SetOption "Break On All Errors", False
         Case "8.0"
            varOldBOAEOptions = GetOption("Error Trapping")
            SetOption "Error Trapping", 2
      End Select
      End Sub
      '-----------------------------------------------------------------
      ' Restore the "Break on All Errors" settings that were temporarily
      ' suspended by the SuspendBreaks procedure.
      '-----------------------------------------------------------------
      Public Sub ResumeBreaks()
      Select Case Application.SysCmd(acSysCmdAccessVer)
         Case "7.0"
            If Not IsEmpty(varOldBOAEOptions) Then _
               SetOption "Break On All Errors", varOldBOAEOptions
         Case "8.0"
            If Not IsEmpty(varOldBOAEOptions) Then _
               SetOption "Error Trapping", varOldBOAEOptions
      End Select
      End Sub 
      Function MyCodeModule()
         SuspendBreaks
         On Error GoTo MyCodeModule_Err
         ' Add your code here.
      MyCodeModule_Exit:
         ResumeBreaks
         Exit Function
      MyCodeModule_Err:
         ' Add your error handling routine here.
         Resume MyCodeModule_Exit
      End Function 
      Form: frmTestErrors
      ----------------------------------------------------
      Caption: Test Error Handling
      Text box:
         Name: txtUName
      Text box:
         Name: txtPwd
      Command button:
         Name: cmdOK
         Caption: Without Turning Off Break On All Errors
         OnClick: [Event Procedure]
      Command button:
         Name: cmdOKBreakOff
         Caption: Turning Off Break On All Errors
         OnClick: [Event Procedure]
      Command button:
         Name: cmdCancel
         Caption: Cancel
         OnClick: [Event Procedure] 
      '---------------------------------------------------------------
      ' Test UserName and Password.
      ' Returns:
      '   True if UserName and Password are valid.
      '   False if UserName and Password are invalid.
      ' Displays corresponding error message.
      '-------------------------------------------------------------
      Public Function ChkPwd(uid As String, strPwd As String)
         On Error GoTo badPwd
         Dim ws As Workspace
         Set ws = DBEngine.CreateWorkspace("TestPWD", uid, strPwd)
         MsgBox "Your password is correct, " & uid
         ChkPwd = True
      exitChkPwd:
         Exit Function
      badPwd:
         MsgBox "Not the right UserName or Password, " & uid & _
                ", if that is your real name!"
         ChkPwd = False
         Resume exitChkPwd
      End Function
      Private Sub cmdOK_Click() ' Without "Break on All Errors" turned off.
         Call ChkPwd(Me![txtUName] & "", Me![txtPwd] & "")
      End Sub
      Private Sub cmdOKBreakOff_Click()
         SuspendBreaks  ' Turn off "Break on All Errors."
         Call ChkPwd(Me![txtUName] & "", Me![txtPwd] & "")
         ResumeBreaks   ' Reset "Break on All Errors."
      End Sub
      Private Sub cmdCancel_Click()
         DoCmd.Close
      End Sub Click End in response to the error message.Run-time error '3029':
Not a valid account name or password.
Not the right UserName or Password, User1, if that is your real name!
For more information about error handling, search the Help Index for "error
handling," or refer to your Microsoft Access manual "Building Applications
with Microsoft Access 97," Chapter 8, "Handling Run-Time Errors," pages
235-254.
For more information about Break On All Errors, search the Help Index for
"GetOption method" or "SetOption method."
Additional query words: BreakOnAllErrors BreakInClassModule BreakOnUnhandledErrors
Keywords          : kbcode kbprg 
Version           : WINDOWS:7.0,97
Platform          : WINDOWS 
Issue type        : kbhowto 
Last Reviewed: August 5, 1999