窗体上的 Microsoft Access 单击事件产生错误

Microsoft Access Click Event on Form produces error

我在 Microsoft Access 2010 中创建了两个表单:我们称它们为 Form1 和 Form2。

Form1 上的按钮应该调用 Form2。 Form2 有两个选项按钮,分别在内部和选项组窗体中,还有两个按钮,其中一个是取消。我创建了以下代码,它在一段时间内运行良好:

Private Sub cmdCancel_Click()
    DoCmd.Close acForm, Me.Name
End Sub

Private Sub cmdCreateFactsheet_Click()
Dim sFund As String

If Me.OptionGroup = 2 Then
    On Error Resume Next
        sFund = Me.ComboFundliste.Value
    On Error GoTo 0
    If sFund = "" Then
        MsgBox ("Please select a Fund")
        End
    Else
        Call modAdvisoryFactSheet.FactSheetSelection(sFund)
    End If
End If

End Sub

Private Sub frmSelection_Open()
    Me.OptionGroup.DefaultValue = 1
End Sub

Private Sub OptOneFund_GotFocus()
    If Me.OptionGroup = 2 Then
        Me.ComboFundliste.Enabled = True
    End If
End Sub

Private Sub OptAllFunds_GotFocus()
    If Me.OptionGroup = 1 Then
        Me.ComboFundliste.Value = ""
        Me.ComboFundliste.Enabled = False
    End If
End Sub

现在,当我尝试打开 form2 时,或者如果我手动打开 form2,当我尝试点击任何控件时,每个 Sub 都会产生错误。

消息始终相同:您作为事件 属性 设置输入的表达式 On Click 产生了以下错误:变量未定义

我意识到这一定与我引用表单的方式有关,但我不明白为什么它运行良好然后突然停止运行。据我所知,我没有做任何更改,我也看不出有什么问题!

感谢任何帮助。

这个答案真的属于 Matt Hall。马特,如果你想回答这个问题,我很乐意给你打勾。目前,我会把它放上来,以便清楚解决方案是什么:

我必须 运行 调试 > 编译才能看到导致错误的行。事实证明,我在 Sub 几个级别下有一个变量,它没有正确定义。

这并没有完全解决问题,但我想分享我非常简单的解决方案。我有一个在启动时运行表单的 Access 2010 Split DB。偶尔,我会得到 "The Expression X you entered as the event property produced the following error..."。由于这发生在启动时,X 最初 = "On Load"。

在对话框中单击会弹出表单,但随后所有其他控件都会产生相同的错误,其中 X 是通常会处理的事件(单击时、Dbl 单击、更新后等) .

只需通过数据库工具打开 Visual Basic window 或切换到设计视图,然后切换到查看代码,即可进行临时修复。该表单将一直有效,直到您关闭数据库。当您重新打开它时,错误再次发生。

通过打开 Visual Basic window 并进行任何更改,可以进行更长的修复。无论如何,我的意思是添加 space 或删除一个。保存表格并退出修复问题数据库,直到.....它决定再次发生。