Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access开发平台

错误#2467 SysFrmGeneralQuickQuery: Function ApplyFilter()

时 间:2016-11-17 09:06:41
作 者:KevinFan   ID:47553  城市:东莞
摘 要:分组查询,多个列表窗体查询字段不同时,平台查询功能会出现:错误#2467 SysFrmGeneralQuickQuery: Function ApplyFilter(),导致查询功能异常。
正 文:

      在做一些分类统计的时候(通过组合框更新后事件改变列表窗体SourceObject),如果不同列表窗体的查询字段不同,而主窗体又使用了平台的查询功能,在输入查询条件的时候会出现:错误#2467 SysFrmGeneralQuickQuery: Function ApplyFilter(),无法使用查询功能:


研究了一下,这个问题是因为加载窗体控件时找不到控件引起的(由于不同窗体控件名称不一样),解决思路是选择分类后,清空已加载的查询字段,重新加载。

在窗体加载事件中增加以下红色字体的代码:

Private Sub Form_Load()
    On Error GoTo ErrorHandler
    LoadIcon Me.btnExport_Image, "export.ico"
    LoadIcon Me.btnClose_Image, "db cancel.ico"


    Set mclsQuery = New GeneralQuery
    With mclsQuery
        .QueryForm = Me.sfrQuickQuery.Form
        Select Case 查询类型
            Case "业务订单月汇总"
            Me.sfrList.SourceObject = Me.Name & "_List" & "_销售金额"
            .DataForm = Me.sfrList.Form
            .ClearFields    ’这句是关键,清空查询字段
            .AddAllFields   ‘这里添加全部查询字段,可以使用
AddField添加部分字段
            .FieldName = "年月"   '设置默认的查询字段
       
        Case "采购订单月汇总"
            Me.sfrList.SourceObject = Me.Name & "_List" & "_采购金额"
            .DataForm = Me.sfrList.Form
            .ClearFields    ’这句是关键,清空查询字段
            .AddAllFields   ‘这里添加全部查询字段,可以使用
AddField添加部分字段
            .FieldName = "年月"   '设置默认的查询字段

        End Select
    End With
    Me.Recalc

ExitHere:
    Exit Sub

ErrorHandler:
    RDPErrorHandler Me.Name & ": Sub Form_Load()"
    Resume ExitHere
End Sub

然后在查询类型的组合框增加一个更新后事件,重新加载窗体:

Private Sub 查询类型_AfterUpdate()
    Call Form_Load
End Sub


这样处理后查询功能就正常了。




Access快速开发平台QQ群 (群号:321554481)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助