尝试在可动态过滤连续表格的组合框中进行搜索时遇到问题。代码如下:
Private Sub cboFormFilter_Change()
If Nz(Me.cboFormFilter.Text) = "" Then
Me.Form.Filter = ""
Me.FilterOn = False
ElseIf Me.cboFormFilter.ListIndex <> -1 Then
Me.Form.Filter = "[Description] = '" & _
Replace(Me.cboFormFilter.Text, "'", """") & "'"
Me.FilterOn = True
Else
Me.Form.Filter = "[Description] Like '*" & _
Replace(Me.cboFormFilter.Text, "'", """") & "*'"
Me.FilterOn = True
End If
Me.cboFormFilter.SetFocus
Me.cboFormFilter.SelStart = Len(Me.cboFormFilter.Text)
End Sub
这段代码效果很好,但是第二个代码我输入的不是连续形式,它将给我运行时错误“ 2185”
例如,如果我的连续表单仅包含名为“ Hello World”的记录,而我键入“ Hello Worlds”,则会弹出错误。
我已经在互联网上搜索了一下,以了解发生了什么,但无法弄清。其他人遇到的问题与我遇到的问题相似,他们说要删除.Text,但这仍然会导致2185错误。我没主意了,我的大脑融化了。有任何想法吗?
谷歌搜索“运行时错误2185”会产生有关错误的结果,当您尝试在没有焦点的情况下尝试访问控件的属性时(将错误消息包含在您的问题中会很高兴)。
控件没有获得焦点似乎很奇怪,因为正是该控件引发了Change
您在此处处理的事件。
因此,我只是将代码包装在错误处理程序中,然后从那里开始工作:
On Error GoTo CleanFail
'your code
CleanExit:
Exit Sub
CleanFail:
If Err.Number = 2158 Then
'handle the error - msgbox, whatever
Err.Clear
Resume CleanExit
End If
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句