Foxtable(狐表)用户栏目专家坐堂 → 再次讨教:三表汇总-已解决


  共有10183人关注过本帖树形打印复制链接

主题:再次讨教:三表汇总-已解决

帅哥哟,离线,有人找我吗?
fjlclxj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/6/1 13:16:00 [显示全部帖子]

还是把汇总表表头做出来,然后编码填充数据吧,你这同一天毛坯、电镀入库及出库都可能有多条记录,还需要判断当日最大的记录数来生成行数,统计生成应该不容易。

 回到顶部
帅哥哟,离线,有人找我吗?
fjlclxj
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/6/1 23:56:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:三表汇总 .table

图片点击可在新窗口打开查看纯手工编码汇总,看看合不合你心意,无惧同日期同项目多行、同日期不同项目多行。图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
fjlclxj
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/6/2 11:13:00 [显示全部帖子]

以下是引用jspta在2013-6-2 10:39:00的发言:

这个编码还是有BUG,请查看毛胚表部分,汇总时候被覆盖掉了。

应该是插入的先后顺序问题。

这个编码的让我想起了一起写的VBA,字典+数组+SQL,呵呵

请教哪段代码有问题?怎么解决的

 回到顶部
帅哥哟,离线,有人找我吗?
fjlclxj
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/6/2 11:46:00 [显示全部帖子]

以下是引用jspta在2013-6-2 11:21:00的发言:

没有仔细查看代码部分,你下载我的附件,汇总的时候,丢失了毛胚表的5-2号的部分项(应该是覆盖掉了)

O(∩_∩)O谢谢jspta的提醒,的确有问题,此问题是由于分表进行了插入操作,导致DataTablesTables的序列不一致造成的。

改进办法:采用tables

Dim mpb As Table= Tables("毛胚表")

Dim dr1 As Row

mpb.Sort = "入库日期"

For Each dr1 In mpb.Rows

'电镀表、出库表类同修改


 回到顶部
帅哥哟,离线,有人找我吗?
fjlclxj
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
回复:(泡泡)若是外部access数据源 是不是要指定一下...  发帖心情 Post By:2013/6/2 12:34:00 [显示全部帖子]

access不太懂图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
fjlclxj
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/6/2 14:21:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:三表汇总 .table

 回到顶部
帅哥哟,离线,有人找我吗?
fjlclxj
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2013/6/3 21:22:00 [显示全部帖子]

看了don的代码,大体思路是
1、顺序加载三张分表到汇总表里,并按表、时间列顺序重置_SortKey。
2、逐行查找电镀表每个日期的最大行,并将找到的当日汇总表电镀行部分复制到毛坯表(表 < '" & dr("表") & "'")部分对应时间行的对应字段里(复制行数为两部分的较小行数),并标记“del”。
3、出库表类同2。
4、删除“del”标记行。
不晓得是不是这个意思。
说说我的思路。
1、设置时间字典表,键为时间,值为数字。
统计毛坯表的时间列及其个数,填入时间字典表里。统计电镀表的时间列及其个数,逐行查找电镀时间列每个不同日期是否在时间字典表里,不在则加入,在的话,判断个数是否比字典表里对应时间键的值大,大的话,更新该值。出库表类同电镀表。
2、排序时间,保证排列按时间顺序;根据时间顺序及各个时间的个数在汇总表中生成行。
3、将三个表按时间顺序逐行填入汇总表即可。
个人觉得,jon的代码在于先填充数据再比较筛选,我的则是先筛选时间生成行,再填充。
看了jon的比较筛选的代码,还是挺有意思的。

 回到顶部