ms将ListIndex设置为-1时访问运行时错误“2115”

时间:2013-03-01 18:27:56

标签: ms-access listbox runtime-error

我的查找表单基本上是一个大型列表框,其中包含一些过滤器,排序和操作按钮以及一些用于实现过滤器的文本框。

我一直在使用这些表格一段时间没有问题。除非选择了列表框中的项目,否则将禁用SELECT按钮。我试图在更改过滤或排序时取消选择任何列表框条目。

为此,我将焦点设置为列表框(无多选选项)为-1。有许多等效的动作,我尝试了大部分动作。 ListIndex设置为-1后,如果我对列表框执行requery操作或对包含表单执行刷新操作,则会出现'2115'运行时错误。另外,我无法将焦点设置到表单上的任何文本框或按钮,这会导致各种运行时错误,即必须保存该字段。

任何人都有关于这应该如何运作的想法?

在代码片段中,获取错误的实际代码是取消选择列表框注释后底部附近的.requery行

以下是我遇到此问题的方法之一的代码段:

    With Me.lbxFoundItems
        If strCurrentSearchText = vbNullString Then    'Nothing to search for
            .Visible = False
            Call ButtonSettings
            Exit Sub
        End If
        strQry = strSql & strWhere & strOrderBy
        If Nz(.RowSource, vbNullString) = vbNullString Then       'First time through
            Set qry = Nothing
            On Error Resume Next
            Set qry = CurrentDb.CreateQueryDef(strQname, strQry)
            If qry Is Nothing Then
                Set qry = CurrentDb.QueryDefs(strQname)
                qry.sql = strQry
            End If
            colGarbage.Add CurrentDb.QueryDefs(qry.Name), qry.Name
            .RowSource = qry.Name
        Else
            CurrentDb.QueryDefs(qry.Name).sql = strQry
        End If
'       Unselect the listbox entry
        .SetFocus                           
        .Selected(.ListIndex + 1) = False
        .Requery
        Me.Refresh

        Me.tbxListCount = .ListCount - 1
        .Visible = True

    End With

0 个答案:

没有答案