窗体上的 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 或删除一个。保存表格并退出修复问题数据库,直到.....它决定再次发生。
我在 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 或删除一个。保存表格并退出修复问题数据库,直到.....它决定再次发生。