Error 459 in Access 2007

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • martin DH
    New Member
    • Feb 2007
    • 114

    Error 459 in Access 2007

    A user of a database received this error when attempting to open the database on a new computer. The Access database was built in Access 2003 and is being opened in Access 2007. The database is set to open a switchboard on startup.

    "The expression on Open you entered as the event property setting produced the following error: Object or class does not support the set of events."

    It's opened on at least one new computer with Access 2007 before. Any ideas?

    Thanks!
  • Denburt
    Recognized Expert Top Contributor
    • Mar 2007
    • 1356

    #2
    If it is and MDB and not an MDE and if there is error trapping involved comment out the "on error goto..." Then you should get an option to debug once you hit debig it should highlight the offending line and you can paste that here. We really need to know what the offending line is and maybe a couple of lines before and after.

    Comment

    • FishVal
      Recognized Expert Specialist
      • Jun 2007
      • 2656

      #3
      This type of errors raises before any code could be executed, e.g. wrong global declarations. I've not succeded to reproduce Err#459, so would you be so kind to post global declarations of the switchboard form module?
      I mean everything but subs/functions internal code.

      Comment

      • martin DH
        New Member
        • Feb 2007
        • 114

        #4
        Originally posted by FishVal
        This type of errors raises before any code could be executed, e.g. wrong global declarations. I've not succeded to reproduce Err#459, so would you be so kind to post global declarations of the switchboard form module?
        I mean everything but subs/functions internal code.
        I'm sorry. I'm very green at this. Can you explain what you mean? Just the VBA code from the switchboard form?

        Comment

        • FishVal
          Recognized Expert Specialist
          • Jun 2007
          • 2656

          #5
          Originally posted by martin DH
          I'm sorry. I'm very green at this. Can you explain what you mean? Just the VBA code from the switchboard form?
          Well.
          Post the whole VBA code from the switchboard form module.

          Comment

          • martin DH
            New Member
            • Feb 2007
            • 114

            #6
            Thanks. :)

            It should be the standard switchboard code plus a couple of command buttons I added (ie open a help screen, exit the database).

            Code:
            Option Compare Database
            
            
            
            Private Sub Form_Open(Cancel As Integer)
            ' Minimize the database window and initialize the form.
            
                ' Move to the switchboard page that is marked as the default.
                Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' "
                Me.FilterOn = True
                
            End Sub
            
            Private Sub Form_Current()
            ' Update the caption and fill in the list of options.
            
                Me.Caption = Nz(Me![ItemText], "")
                FillOptions
                
            End Sub
            
            Private Sub FillOptions()
            ' Fill in the options for this switchboard page.
            
                ' The number of buttons on the form.
                Const conNumButtons = 8
                
                Dim con As Object
                Dim rs As Object
                Dim stSql As String
                Dim intOption As Integer
                
                ' Set the focus to the first button on the form,
                ' and then hide all of the buttons on the form
                ' but the first.  You can't hide the field with the focus.
                Me![Option1].SetFocus
                For intOption = 2 To conNumButtons
                    Me("Option" & intOption).Visible = False
                    Me("OptionLabel" & intOption).Visible = False
                Next intOption
                
                ' Open the table of Switchboard Items, and find
                ' the first item for this Switchboard Page.
                Set con = Application.CurrentProject.Connection
                stSql = "SELECT * FROM [Switchboard Items]"
                stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]
                stSql = stSql & " ORDER BY [ItemNumber];"
                Set rs = CreateObject("ADODB.Recordset")
                rs.Open stSql, con, 1   ' 1 = adOpenKeyset
                
                ' If there are no options for this Switchboard Page,
                ' display a message.  Otherwise, fill the page with the items.
                If (rs.EOF) Then
                    Me![OptionLabel1].Caption = "There are no items for this switchboard page"
                Else
                    While (Not (rs.EOF))
                        Me("Option" & rs![ItemNumber]).Visible = True
                        Me("OptionLabel" & rs![ItemNumber]).Visible = True
                        Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
                        rs.MoveNext
                    Wend
                End If
            
                ' Close the recordset and the database.
                rs.Close
                Set rs = Nothing
                Set con = Nothing
            
            End Sub
            
            Private Function HandleButtonClick(intBtn As Integer)
            ' This function is called when a button is clicked.
            ' intBtn indicates which button was clicked.
            
                ' Constants for the commands that can be executed.
                Const conCmdGotoSwitchboard = 1
                Const conCmdOpenFormAdd = 2
                Const conCmdOpenFormBrowse = 3
                Const conCmdOpenReport = 4
                Const conCmdCustomizeSwitchboard = 5
                Const conCmdExitApplication = 6
                Const conCmdRunMacro = 7
                Const conCmdRunCode = 8
                Const conCmdOpenPage = 9
            
                ' An error that is special cased.
                Const conErrDoCmdCancelled = 2501
                
                Dim con As Object
                Dim rs As Object
                Dim stSql As String
            
            On Error GoTo HandleButtonClick_Err
            
                ' Find the item in the Switchboard Items table
                ' that corresponds to the button that was clicked.
                Set con = Application.CurrentProject.Connection
                Set rs = CreateObject("ADODB.Recordset")
                stSql = "SELECT * FROM [Switchboard Items] "
                stSql = stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn
                rs.Open stSql, con, 1    ' 1 = adOpenKeyset
                
                ' If no item matches, report the error and exit the function.
                If (rs.EOF) Then
                    MsgBox "There was an error reading the Switchboard Items table."
                    rs.Close
                    Set rs = Nothing
                    Set con = Nothing
                    Exit Function
                End If
                
                Select Case rs![Command]
                    
                    ' Go to another switchboard.
                    Case conCmdGotoSwitchboard
                        Me.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" & rs![Argument]
                        
                    ' Open a form in Add mode.
                    Case conCmdOpenFormAdd
                        DoCmd.openform rs![Argument], , , , acAdd
            
                    ' Open a form.
                    Case conCmdOpenFormBrowse
                        DoCmd.openform rs![Argument]
            
                    ' Open a report.
                    Case conCmdOpenReport
                        DoCmd.OpenReport rs![Argument], acPreview
            
                    ' Customize the Switchboard.
                    Case conCmdCustomizeSwitchboard
                        ' Handle the case where the Switchboard Manager
                        ' is not installed (e.g. Minimal Install).
                        On Error Resume Next
                        Application.Run "ACWZMAIN.sbm_Entry"
                        If (Err <> 0) Then MsgBox "Command not available."
                        On Error GoTo 0
                        ' Update the form.
                        Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' "
                        Me.Caption = Nz(Me![ItemText], "")
                        FillOptions
            
                    ' Exit the application.
                    Case conCmdExitApplication
                        CloseCurrentDatabase
            
                    ' Run a macro.
                    Case conCmdRunMacro
                        DoCmd.RunMacro rs![Argument]
            
                    ' Run code.
                    Case conCmdRunCode
                        Application.Run rs![Argument]
            
                    ' Open a Data Access Page
                    Case conCmdOpenPage
                        DoCmd.OpenDataAccessPage rs![Argument]
            
                    ' Any other command is unrecognized.
                    Case Else
                        MsgBox "Unknown option."
                
                End Select
            
                ' Close the recordset and the database.
                rs.Close
                
            HandleButtonClick_Exit:
            On Error Resume Next
                Set rs = Nothing
                Set con = Nothing
                Exit Function
            
            HandleButtonClick_Err:
                ' If the action was cancelled by the user for
                ' some reason, don't display an error message.
                ' Instead, resume on the next line.
                If (Err = conErrDoCmdCancelled) Then
                    Resume Next
                Else
                    MsgBox "There was an error executing the command.", vbCritical
                    Resume HandleButtonClick_Exit
                End If
                
            End Function
            
            Private Sub open_sysinfo_Click()
            
            FollowHyperlink "C:\Documents and Settings\bcraft\Desktop\v.2\Menu Map.doc"
            End Sub
            Private Sub exit_Click()
            On Error GoTo Err_exit_Click
            
            
                DoCmd.Quit
            
            Exit_exit_Click:
                Exit Sub
            
            Err_exit_Click:
                MsgBox Err.Description
                Resume Exit_exit_Click
                
            End Sub
            Private Sub open_help_Click()
            On Error GoTo Err_open_help_Click
            
                Dim stDocName As String
                Dim stLinkCriteria As String
            
                stDocName = "Help Window"
                DoCmd.openform stDocName, , , stLinkCriteria
            
            Exit_open_help_Click:
                Exit Sub
            
            Err_open_help_Click:
                MsgBox Err.Description
                Resume Exit_open_help_Click
                
            End Sub

            Comment

            • Denburt
              Recognized Expert Top Contributor
              • Mar 2007
              • 1356

              #7
              Ah 2007 sounds like it is going to be so much fun... Hope I never get there.

              Take a look at this it may help you understand what is going on.



              No Switchboards in Access 2007 glad I gave them up a LONG time ago.

              Run your existing switchboards as usual If you choose to continue using switchboards, consider disabling any unsupported actions, such as displaying the Database window. If you configure a database to show a switchboard on startup, that switchboard will appear and run normally, expect for any commands that Office Access 2007 no longer supports. In addition, you can still use the Switchboard Manager to create, change and delete switchboards, and steps later in this article explain how to use the Switchboard Manager.

              Comment

              • Denburt
                Recognized Expert Top Contributor
                • Mar 2007
                • 1356

                #8
                Here is another article you should read:



                I noticed in your code you had "FollowHyperlin k" I don't know what your sandbox is set to so that is something you will want to determine.

                Functions blocked by sandbox mode

                Sandbox mode blocks the following Access functions when the functions are called from an expression in a query or from an Access property. An asterisk (*) after the function name indicates a function that is new in Office Access 2007.

                Use the links in the See Also section for more help for the most commonly used functions.

                Comment

                Working...