设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2373|回复: 3
打印 上一主题 下一主题

[查询] 求助!关于双交叉表查询窗体的筛选问题

[复制链接]
跳转到指定楼层
1#
发表于 2007-8-6 11:42:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刘小军的常用窗体查询中,有关于对交叉表窗体怎样筛选的内容,我也成功实现了,但我现在需要同时对在一个主窗体中的两个由交叉表生成的子窗体进行筛选,倒腾了一上午了,还是不行。
有那位大师能给指点一下吗。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-8-6 11:53:08 | 只看该作者
也许上传附件更能说明问题
3#
 楼主| 发表于 2007-8-6 11:56:41 | 只看该作者
上传代码可以吗,大师
4#
 楼主| 发表于 2007-8-6 11:58:05 | 只看该作者
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 03:49 , Processed in 0.094049 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表