Office中国论坛/Access中国论坛

标题: 求助!关于双交叉表查询窗体的筛选问题 [打印本页]

作者: 月之狼神    时间: 2007-8-6 11:42
标题: 求助!关于双交叉表查询窗体的筛选问题
刘小军的常用窗体查询中,有关于对交叉表窗体怎样筛选的内容,我也成功实现了,但我现在需要同时对在一个主窗体中的两个由交叉表生成的子窗体进行筛选,倒腾了一上午了,还是不行。
有那位大师能给指点一下吗。
作者: 一点通    时间: 2007-8-6 11:53
也许上传附件更能说明问题
作者: 月之狼神    时间: 2007-8-6 11:56
上传代码可以吗,大师
作者: 月之狼神    时间: 2007-8-6 11:58
Dim strWhere As String  '定义条件字符串
    Dim qdf As DAO.QueryDef 'qdf被定义为一个查询定义对象
    Dim strSQL As String
   
    strWhere = "" '设定初始值-空字符串
   

    '判断【日期】条件是否有输入的值
    If Not IsNull(Me.日期) Then
        '有输入
        strWhere = strWhere & "([日期] like '" & Me.日期 & "') AND "
    End If
   
    '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
    '要用LEFT函数截掉这5个字符。
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If

   
    '先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
    'Debug.Print strWhere
   
    '根据是否有条件来设定交叉表查询的SQL语句
    If Len(strWhere) > 0 Then
        strSQL = "TRANSFORM Sum(星期三.余额) AS 余额之总计 SELECT 星期三.科目, 星期三.日期 FROM 星期三 "
        strSQL = strSQL & "WHERE(" & strWhere
        strSQL = strSQL & ") GROUP BY 星期三.科目, 星期三.日期 PIVOT 星期三.部门"
        
        strSQL = "TRANSFORM Sum(星期三分类.余额合计) AS 余额合计之总计 SELECT 星期三分类.分类, 星期三分类.日期 FROM 星期三分类 "
        strSQL = strSQL & "WHERE(" & strWhere
        strSQL = strSQL & ") GROUP BY 星期三分类.分类, 星期三分类.日期 PIVOT 星期三分类.部门"
    Else
        strSQL = "TRANSFORM Sum(星期三.余额) AS 余额之总计" & _
                 " SELECT 星期三.科目, 星期三.日期" & _
                 " FROM 星期三" & _
                 " GROUP BY 星期三.科目, 星期三.日期" & _
                 " PIVOT 星期三.部门"
                 
        strSQL = "TRANSFORM Sum(星期三分类.余额合计) AS 余额合计之总计" & _
                 " SELECT 星期三分类.分类, 星期三分类.日期" & _
                 " FROM 星期三分类" & _
                 " GROUP BY 星期三分类.分类, 星期三分类.日期" & _
                 " PIVOT 星期三分类.部门"
    End If
   
   
    '修改交叉表查询的SQL语句
    Set qdf = CurrentDb.QueryDefs("全部周报")
    Set qdf = CurrentDb.QueryDefs("全部周报分类")
    qdf.SQL = strSQL
    qdf.Close
   
    Set qdf = Nothing
   
    '显示交叉表的内容,不能直接刷新
    Me.全部周报.SourceObject = ""
    Me.全部周报分类.SourceObject = ""
    Me.全部周报.SourceObject = "查询.全部周报"
    Me.全部周报分类.SourceObject = "查询.全部周报分类"
   
   
Exit_cmd查询_Click:
    Exit Sub

Err_cmd查询_Click:
    MsgBox Err.Description
    Resume Exit_cmd查询_Click
   
   
End Sub




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3