Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

以逗号分隔查询

chinasa  发表于:2012-12-13 10:41:50  
复制

原先表:

BL_NO   container_no            SL

XX        AAAAAAAAAAA         2

XX        BBBBBBBBBB             2

XX        CCCCCCCCCCC           2

YY       MMMMMMMMMMM      8

YY       NNNNNNNNNNN         8

我想得到结果:

XX      2    AAAAAAAAAAA,BBBBBBBBBBB,CCCCCCCCCCC

YY     8     MMMMMMMMMMM,NNNNNNNNNNN


container_no字段本来是每条记录只有11个字符,我用如下语句并结合查询,以BL_NO字段分组,把对应的container_no写到一起,并用逗号"'"分隔。但当结果字符数大于255时,后面的字符就丢失了。不知道如何处理?或者是否有其它办法?

Function GetCntr(company As String)
    Dim rs As New ADODB.Recordset
    With rs
        .Open "Select * From CG_BOOKING where BL_NO='" & company & "'", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
        Do While Not .EOF
            If Nz(GetCntr) = "" Then
                GetCntr = !CONTAINER_NO
            Else
                GetCntr = GetCntr & "," & !CONTAINER_NO
            End If
            .MoveNext
        Loop
    End With

End Function

 

Top
煮江品茶 发表于:2012-12-13 11:03:42

不写入表中应该不会吧?如果是写入表中的话,应该将字段类型修改为备注型。



chinasa 发表于:2012-12-13 11:20:15

请见附件

下载附件




chinasa 发表于:2012-12-13 13:40:16

网上搜索到一个前辈是这样写的,但我不知道怎样使用,谁能帮我?

 

/*

把满足 t2.NodeID=t1.NodeID的tableA 的字段NodeName 以逗号分隔开合并为一个字段输出

*/

select *,stuff((select ',' + t1.NodeName from tableA t1,tableB t2
                where   t2.NodeID=t1.NodeID
                for xml path('')) , 1 , 1 , '')  as text
from tableA



煮江品茶 发表于:2012-12-13 14:12:26

在查询的设计视图中将xh字段下面的“分组”修改为“表达式”即可。



chinasa 发表于:2012-12-13 14:26:26

多谢煮版。

再请教个问题,是否有办法把它弄到EXCEL中?我现在无论是复制还是导出都没办法弄出超过255个字符,后面的字符全丢失了。



煮江品茶 发表于:2012-12-13 14:39:41

用《齐人之福》中所示的方法试试。



煮江品茶 发表于:2012-12-13 14:41:26
不过我很怀疑这样处理有实际意义吗?人眼观察这么多无意义的字符不是一个好办法。

chinasa 发表于:2012-12-13 15:24:28

煮版,主要是与某个单位进行电子数据交换时,对方要求这个格式,偶也没办法啊。

不过这个问题之前已经有位老师答复过,我再学习下您的办法吧。



总记录:8篇  页次:1/1 9 1 :