我在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会产生以下错误:未定义变量
我意识到这必须与我如何引用表单有关,但我不明白为什么这样运作良好然后突然停止工作。就我记忆而言,我没有改变任何东西,我也没有看到什么是错的!
任何帮助表示感谢。
答案 0 :(得分:2)
这并没有完全解决问题,但我想分享我真正简单的解决方案。我有一个Access 2010 Split DB,它在启动时运行一个表单。偶尔,我会得到“你输入的表达式X,因为事件属性产生了以下错误......”。由于这是在启动时发生的,因此X最初=“On Load”。
单击对话框将显示表单,但是所有其他控件将产生相同的错误,X是通常要处理的事件(单击,单击,单击后,更新后等)。 / p>
只需通过数据库工具打开Visual Basic窗口或切换到“设计视图”,然后切换到“查看代码”,即可进行临时修复。然后表单将一直有效,直到您关闭数据库。当您重新打开它时,错误再次发生。
通过打开Visual Basic窗口并进行任何更改,可以进行更长时间的修复。无论如何,我的意思是添加空格或删除空格。保存表单并退出修复问题数据库,直到......它决定再次发生。
答案 1 :(得分:1)
这个答案真的属于马特霍尔。马特,如果你想回答它,我很乐意给你勾选标记。目前,我已经说明了解决方案的原因:
我必须运行Debug> Compile才能看到导致错误的行。事实证明,我在Sub中有一个变量几个级别,但没有正确定义。