Error: object or class does't support the set or events

Anonymous
2013-04-10T19:14:06+00:00

Hello,

Below are the messages I received when I openned the database.

"The expression on Open you entered as the event property setting produced the following error: Objet or class doesn't support the sset of events.

Visual Basic for applications (VBA) encountered a problem while attempting to access a property or method. The problem may be one fo the following:

  • A reference is missing
  • An Expression is misspelled
  • Check all expressions used in event properties for correct spelling and so on....."

My database created with 2003 version that  has been uploaded in sharedrive and users use different Access versions to access it. I think that made many broken VBA...

In my case I think that the Switchboard that I created in the past has a problem with the "open button", but I don't know how to fix it.

Please advice.

Thanks

Chi

Microsoft 365 and Office | Access | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
Anonymous
2013-04-11T18:51:34+00:00

Check the properties on the Forms OnOpen event. With the form open, the top of the properties page should say:

Property Sheet

Select Type: Form

It may be a little different in 2013 - I'm on 2010 right now.

The OnOpen event should have [Event Procedure] in it. When you press the elipsis (...) it should take you to your OnOpen Event.

Try comment out your Filter items in your OnOpen event.

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

Was this answer helpful?

10 people found this answer helpful.
0 comments No comments
Answer accepted by question author
Anonymous
2013-04-10T22:28:30+00:00

Have you tried repairing your db?

Have you looked at your form and checked it's OnOpen event properties?

Have you open it and looked at the OnOpen event to see if there are any errors with the code?

If nothing else, try removing your error trapping and opening the form to see where in the code it is erroring out.

Was this answer helpful?

4 people found this answer helpful.
0 comments No comments

1 additional answer

Sort by: Oldest
  1. Anonymous
    2013-04-11T13:40:51+00:00

    Hi HannoverFist,

    Thank you so much for your suggestions! I did  repair  the database, but the message is still there.

    Now I can see that the Switchboard has a problem. In fact, when I hit the Switchboard form, the error message appears right away.

    I don't understand the code language so If you can, please check my code.  Appreciate!

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

    Below  is my Swithboard On Open codes:

    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 Option1_Click()

    Dim strPasswd

    strPasswd = InputBox("Enter Password", "Restricted Form")

        'Check to see if there is any entry made to input box, or if

        'cancel button is pressed. If no entry made then exit sub.

        If strPasswd = "" Or strPasswd = Empty Then

            MsgBox "No Input Provided", vbInformation, "Required Data"

            Exit Sub

        End If

        'If correct password is entered open Employees form

        'If incorrect password entered give message and exit sub

        If strPasswd = "farley1" Then

    DoCmd.OpenForm "frm QualityMestricsEntry", acNormal

    Else

    MsgBox "Sorry, you do not have access to this form", _

                   vbOKOnly, "Important Information"

            Exit Sub

        End If

    End Sub

    Private Sub Option5_Click()

    Dim strPasswd

    strPasswd = InputBox("Enter Password", "Restricted Form")

        'Check to see if there is any entry made to input box, or if

        'cancel button is pressed. If no entry made then exit sub.

        If strPasswd = "" Or strPasswd = Empty Then

            MsgBox "No Input Provided", vbInformation, "Required Data"

            Exit Sub

        End If

        'If correct password is entered open Employees form

        'If incorrect password entered give message and exit sub

        If strPasswd = "farley1" Then

    DoCmd.OpenForm "frmMonthlyMetricMain", acNormal

    Else

    MsgBox "Sorry, you do not have access to this form", _

                   vbOKOnly, "Important Information"

            Exit Sub

        End If

    End Sub

    Thank you!

    Chi Loi

    Was this answer helpful?

    0 comments No comments