Office中国论坛/Access中国论坛

标题: 伪球迷——从“伪交叉表查询”谈谈数据交换 [打印本页]

作者: roych    时间: 2014-6-17 16:41
标题: 伪球迷——从“伪交叉表查询”谈谈数据交换
本帖最后由 roych 于 2014-8-26 16:22 编辑

       如火如荼的世界杯又开始了,看多了“来自猩猩的你”之后,一个MM毅然换台去看世界杯,昨晚在微信上大喊:"C罗无力回天啊,葡萄牙这是什么节奏啊!"而Roych则在下面回复“穆勒威武!日耳曼战车威武!”她忽然来一句,“你不是跟我一样,都是伪球迷吗?”我淡淡地说,“我已经如假乱真了……”真正的伪球迷,也会和朋友们一起熬夜狂呼,也会喝啤酒吃烧烤……当然,跟真球迷还是有区别的,那就是不会为了一场球赛非要跑到现场去看。就像下面这个效果一样:       源数据截图:
[attach]54109[/attach]
       要求效果:
[attach]54110[/attach]
       乍一看确实很像,不过仔细留意一下就会发现,要求效果上的字段全是列字段吗?所以这是一个“伪交叉表查询”。
       伪球迷要装成资深球迷,其实难度还是相当大的,需要对大部分球星有所了解,而且最好是花些时间去看看他们的经典之作。同样地,要做好一个”伪交叉表查询“也绝非易事。下面就逐步分解。
       第一步:先不考虑条件,假定问题是:该怎么做才能生成这么一个总表。显然,关键在于”处理日期1“、”处理日期2“、”处理日期3“……这些字段(其它字段都可以通过源数据来获取)。这些字段显然跟处理次数有关,因此可以通过统计次数来完成它。由于处理次数不一,显然还需要列出个最大次数来确定这张表。——第一段代码的思路完成了。
       第二步:如何把数据写入?考虑到每个服务代码都有不同的次数,因此应当以服务代码为条件来创建记录集写入。这样一来就可以分成两步走:
       a、把其它列的数据写入第一步所创建的表。
       b、根据a,可以获取不同的服务代码、SPID等数据,以此作为条件,把日期列数据更新到第一步所创建的表。
       第二段代码的思路完成。
       第三步:展示数据。方法有多种,例如导出,或者打开Excel写入(示例用了这一种)。——子函数的思路构想。
      至此,所有思路已经打通,接下来就是代码的编写了。这就没什么好说的了,详见附件。      [attach]54111[/attach]      ------------------------------------------------------------------------------------------------------------------------------------------
      8月26日,增加纯Excel版本供参考。
     [attach]54518[/attach]




作者: tmtony    时间: 2014-6-17 23:19
赞一个,先顶一下
作者: tzh1600    时间: 2014-6-18 12:33
学习




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