设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2992|回复: 9
打印 上一主题 下一主题

[查询] 如何分割查询

[复制链接]
1#
发表于 2017-4-13 11:25:19 | 显示全部楼层
可以用查询实现,ACCESS的查询能力超乎想像的强大。
如果备注中的列数固定就非常简单,直接做个联合查询就可以了。(就不举例了)
如果备注中的列数不固定,做个分割函数,再创建最大列数的联合查询就可以了。
具体如下:
SELECT 订单表.订单号, 分割(备注,0) AS 备注1
FROM 订单表 where 分割(备注,0)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,1)
FROM 订单表 where 分割(备注,1)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,2)
FROM 订单表 where 分割(备注,2)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,3)
FROM 订单表 where 分割(备注,3)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,4)
FROM 订单表 where 分割(备注,4)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,5)
FROM 订单表 where 分割(备注,5)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,6)
FROM 订单表 where 分割(备注,6)<>""
UNION ALL SELECT 订单表.订单号, 分割(备注,7)
FROM 订单表 where 分割(备注,7)<>"";

Public Function 分割(待分割数据, 数据所在列数) As String
     数据数组 = Split(待分割数据, ",")
    If 数据所在列数 > UBound(数据数组) Then
        分割 = ""
    Else
        分割 = 数据数组(数据所在列数)
    End If
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 05:35 , Processed in 0.090648 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表