Microsoft Access单击表单上的事件会产生错误

时间:2015-06-10 09:16:33

标签: ms-access access-vba ms-access-2010

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

Form1上的Button应该调用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会产生以下错误:未定义变量

我意识到这必须与我如何引用表单有关,但我不明白为什么这样运作良好然后突然停止工作。就我记忆而言,我没有改变任何东西,我也没有看到什么是错的!

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:2)

这并没有完全解决问题,但我想分享我真正简单的解决方案。我有一个Access 2010 Split DB,它在启动时运行一个表单。偶尔,我会得到“你输入的表达式X,因为事件属性产生了以下错误......”。由于这是在启动时发生的,因此X最初=“On Load”。

单击对话框将显示表单,但是所有其他控件将产生相同的错误,X是通常要处理的事件(单击,单击,单击后,更新后等)。 / p>

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

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

答案 1 :(得分:1)

这个答案真的属于马特霍尔。马特,如果你想回答它,我很乐意给你勾选标记。目前,我已经说明了解决方案的原因:

我必须运行Debug> Compile才能看到导致错误的行。事实证明,我在Sub中有一个变量几个级别,但没有正确定义。