注册 登录
编程论坛 VB6论坛

如何在VB+access中实现同一字段(字符类型),不同数据的分组汇总

haha5201314 发布于 2013-06-14 08:29, 798 次点击
如下列所示,如何在datagrid控件中实现如下功能
AA BB CC DD 是字段
11 1 2 "11111"
11 2 2 "abc"
22 1 2 "22222"
22 1 2 "abcfd"
33 1 2 "33333"
33 1 2 "bcde"
实现结果:
AA BB CC DD
11 3 4 "11111\\abc"
22 2 4 "22222\\abcfd"
33 2 4 "33333\\bcde"
6 回复
#2
Artless2013-06-14 11:14
规则?
#3
lowxiong2013-06-14 11:46
好像汇总只针对数字字段起作用,字符字段不参与汇总的。
#4
风吹过b2013-06-14 12:14
一个内容一个内容的手动汇总吧。
#5
jzhx682013-06-14 13:24
应该可以。
最土也是最笨的方法是,用循环语句分别提取记录,比对AA字段的记录,再对后面的字段进行操作。
#6
haha52013142013-06-14 16:26
额...自动汇总确实不行,ACCESS 不支持字符汇总,在ACCESS 模块中添加自定义聚合函数后在ACCESS中可以实现自动汇总,但用VB连接后又就不行了,通过ACCESS 查询也不行.
考虑了好长时间了,没办法在上面所说环境里实现所要功能,目前想出来新建一个临时表,把手动汇总的数据写入数据库,实现汇总显示,打印功能,退出时删除临时表.
唉,ACCESS 好多限制,SQL可以真接使用自定义函数,可以建立真正的临时表.
感谢各位网友的帮助......
#7
wxflw2013-06-14 19:51
这个方法不知道可以不你先试试,先将查询到的结果排序 order by AA asc
然后用Do While Not rs.EOF '循环查询结果
         IF rs.Fields("AA")=K then
            rs.Fields("BB")=rs.Fields("BB")+rs.Fields("BB")
            rs.Fields("CC")=rs.Fields("CC")+rs.Fields("CC")
            rs.Fields("DD")=rs.Fields("DD") & "//" & rs.Fields("CC")
        end if
        k=rs.Fields("AA")
       LOOP

我没试过,你先试试看,版主有什么好办法没?我也想知道
1