Office中国论坛/Access中国论坛

标题: 每周一题---如何对交叉查询产生报表 [打印本页]

作者: tmtony    时间: 2002-3-17 18:18
标题: 每周一题---如何对交叉查询产生报表
ACCESS提供一个交叉查询的功能,为用户提供许多方便,它也可以直接打印。
但如果你需要使用这个交叉查询来制作一个报表,由于交叉查询产生的列是不定的,且根据数据而变,所以制作报表存在一些问题,请大家就这个问题进行讨论,提出一个比较好的解决方案。

以后每周均会以这种形式对ACCESS的一些难题进行讨论。
表现优秀者将由版主或站长予以各种形式的嘉奖!!!




[此贴子已经被tmtony于2002-3-17 10:17:46编辑过]


(报表设计-相关文章技巧链接):
Access如何对交叉查询产生报表


作者: ganrong    时间: 2002-3-18 04:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: cnwang    时间: 2002-3-18 05:48
先加控件再隐藏,或动态创建控件应该都可以。

用交叉查询做报表源,其最大难点应该在于字段名的不固定,下面这句可以帮点忙啦:

CurrentDb.QueryDefs("交叉查询1").Fields(2).Name



老大这个点子非常不错!!!!!!!
[此贴子已经被cnwang于2002-3-17 21:47:42编辑过]


作者: tmtony    时间: 2002-3-18 06:01
cnwang兄,我现在采取的办法是也是创建足够多的控件。
但我根据查询表或窗体(一般是子窗体)的列(动态列)来动态显示和重新定位报表中的列,使整个报表永远比较美观,但在处理上始终不是十分方便。
所以想知道高手在这方面的经验。
作者: yuab    时间: 2002-3-18 15:50
标题: 不固定栏位报表解决方案
我做了个例子可解决以上问题。最关键是不会影响速度。
文件下载
作者: tmtony    时间: 2002-3-18 20:39
很不错,看来大家的思路都是一样的
我的程序基本上与你的是类似的。
我过几天整理一下也放上来
不过,想知道还有没有其它办法
作者: tmtony    时间: 2002-3-18 21:25
上传了我的例子,由于有客户的数据,所以只放上报表和程序,无法取具体数据,大家看看程序即要明白。
根据产生的查询窗体的列的多少自动设置报表显示的列及重新排列各列的位置。
自动根据数据窗体栏目宽度的变化而自动改变报表各列的宽度的功能还正在完善(即所见即所得)文件下载
作者: xushengqi    时间: 2002-9-2 04:00
对不起,将你们打扰了。
请问行总计有了,那么列总计如何设计?谢谢!(急)
作者: xinbao    时间: 2002-9-2 04:20
sum可否
作者: xushengqi    时间: 2002-9-2 06:24
斑竹,我有急用,请指导我,谢谢!
就是:交叉表按您们的方法在报表中横的可以总计,那么竖的总计如何设计,万分感谢!
作者: tmtony    时间: 2002-9-2 17:04
我的程序里面有啊,
lblTotal.Left = 30
    lblTotal.Width = Width1
    txttotalwaste_qty.ControlSource = "totalwaste_qty"
    txtttotalwaste_qty.ControlSource = "=sum(totalwaste_qty)"
    If Me.Width < ttlwidth + txttotalwaste_qty.Width Then
                Me.Width = Me.Width + txttotalwaste_qty.Width
    End If
    lbltotalwaste_qty.Left = ttlwidth
    txttotalwaste_qty.Left = ttlwidth
    txtttotalwaste_qty.Left = ttlwidth
    lbltotalwaste_qty.Visible = True
    txttotalwaste_qty.Visible = True
    txtttotalwaste_qty.Visible = True
    ttlwidth = ttlwidth + txttotalwaste_qty.Width
不过,这种合计需要你选择某些字段进行合计,如果你想所有数字字段都进行合计,则还要进行一次判断,即如果此列被显示且是数字字段,则在报表页脚上相应位置加上相应合计:

作者: xushengqi    时间: 2002-9-3 01:34
老大啊,我是刚入门的,您的高深内容我非常仰慕,不过我看不太懂,最好有数据结合或者简单点介绍一下,我相信这个功能大家都会碰到的,万分感谢!
作者: xushengqi    时间: 2002-9-5 01:26
斑竹,帮忙解决一下,谢谢!
作者: tango    时间: 2002-9-5 07:20
有空,我记得在查询里pivot选项后设置一下列名称就可以啦,就算没有数据生成,也可以形成列的,我以前一个程序就用过。
作者: qpzm    时间: 2004-1-12 00:55
请教yuab版主和tmtony站长,有个问想请教,以yuab给的例子来说:
如果在"2001-1-1"这天的所有项目的总计为0,可否在报表中把这天隐藏起来,以节省报表空间.
因我遇过字段很多的情况,同时把所有字段都打印出时纸张不够宽,但是在同月内有些字段不用显示出来,所以想隐藏一些字段,请问有没有办法?
作者: kisi    时间: 2005-6-11 18:37
当对交叉查询进行参数传递时就没办法生成报表了(字段为空,无法继续),请问有什么方法可以解决?
作者: binlong    时间: 2005-8-13 02:20
还有一个问题,就是如何控制报表的内容呢?比如限制某一时间段或者某一年的内容呢?请继续讨论谢谢
作者: yesno2000    时间: 2005-10-11 22:39
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
作者: qazplm    时间: 2006-6-8 05:35
对不起,将你们打扰了。
请问行总计有了,那么列总计如何设计?谢谢![em05]
作者: ACCESSWANGCHENG    时间: 2007-1-12 00:45
0k
作者: 盗到稻    时间: 2007-11-19 15:16
怎么下载例子呢[local]/http://www.office-cn.net/vvb/uploadimages/200231813245674004.rar[/local]

[ 本帖最后由 盗到稻 于 2007-11-19 15:21 编辑 ]
作者: beenet    时间: 2007-11-19 16:02
let me see see
作者: 盗到稻    时间: 2007-11-20 16:54
请问如何下载,本人急需此论题的例子,管理员可否修复一下?
作者: njy6000    时间: 2009-2-20 23:48
抽时间认真学习一下.
作者: whj1314    时间: 2010-4-26 00:46
zheng 需要




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