Office中国论坛/Access中国论坛

标题: [请教]如何用VBA实现下列操作 [打印本页]

作者: xiangchendub    时间: 2006-8-6 20:01
标题: [请教]如何用VBA实现下列操作
我有个Access 表如下:

年         公司       第一季度销量 第二季度销量 第三季度销量 第四季度销量

1990       a            xxx                   xxx                 xxx                    xxx

1990        b           xxx                   xxx                 xxx                    xxx

1990        c           xxx                   xxx                 xxx                    xxx

........

2000        b           xxx                   xxx                 xxx                    xxx

2000        c           xxx                   xxx                 xxx                    xxx

2000        a            xxx                   xxx                 xxx                    xxx

我想输出一个txt 文件如下:

公司       19901销量 19902销量 19903销量 19904销量 20001销量 20002销量 20003销量 20004销量

     a            xxx             xxx                 xxx               xxx             xxx               xxx              xxx                   xxx

      b           xxx             xxx                 xxx                xxx            xxx                xxx             xxx                   xxx

     c           xxx               xxx                 xxx                xxx           xxx                xxx             xxx                   xxx

其实就是先排序,再把表中纵向叠放的数据按照公司名横向叠放,最后输出一

个txt 文件

请问如何用vba, SQL 实现? 如果能帮写个code,不胜感激

谢谢援手
作者: andymark    时间: 2006-8-6 20:09
  交叉表,再输出到TXT
作者: xiangchendub    时间: 2006-8-6 20:18
谢谢回复,但是其实所有数据都在一个表中。

不存在交叉表的问题。 我想是不是应该先对每年分别作一个查询,

再Union all 一下呀。不知道这行不行
作者: andymark    时间: 2006-8-6 20:28
交叉表查询
作者: xiangchendub    时间: 2006-8-6 20:31
能给出命令的英文关键字吗? 我去看看帮助去

谢了
作者: tz-chf    时间: 2006-8-6 23:51
19901销量 19902销量 19903销量 19904销量 20001销量 20002销量 20003销量 20004销量

多了一个"0"
作者: xiangchendub    时间: 2006-8-7 02:03
其实 19901 代表 1990年第一季度

20002 代表 2000年第2季度

也就是说 行是公司,列是年份和季度的合并

如果说用 交叉表查询,那末select 去选行(公司名),

Pivot 去选列,但是这里列是两个变量的合并,我是在不知道怎莫写。

感觉这应该有点像数据透视表(excel).大概应该像

Transform ....

select 公司 from mytable

Pivot 年,几度

各位老大帮忙写个句子吧,谢了
作者: xiangchendub    时间: 2006-8-7 04:56
估计用交叉表查询解决不了。




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