Access交流中心

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

如何将一条记录拆分成几条

卢先生  发表于:2012-09-04 17:39:32  
复制

如何将一条记录按其中的数字字段值拆分成几条?

 

Top
卢先生 发表于:2012-09-04 22:05:58

没人会做这个吗?请教了



卢先生 发表于:2012-09-04 22:08:15
我的附件怎么不见了?

沈军 发表于:2012-09-04 23:42:38

你的意思是将一个字段中的数值分成几部分吧,比如:身份证号码 要分出出生年月日和其他部分值。

18位数的身份证号码 提取出生年月日 Right(Left("422201197801290011", 14), 8)

15位数的身份证号码 提取出生年月日 Right(Left("422201780129001", 12), 6)

 

供参考



卢先生 发表于:2012-09-05 08:46:45
谢谢回复,是这样的:假如有个字段是6,我要把这条记录分成6条,字段6那个值改成1.2.3.4.5.6见附件点击下载此附件

煮江品茶 发表于:2012-09-05 12:18:47
function 拆分扎号()
   Dim rs As New ADODB.Recordset
   dim ssql as string
   dim num as string
   dim i as long,j as long
   ssql="select PO from 表1 groud by PO"
   rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   for i=1 to rs.RecordCount
        num=rs!PO.value
        ssql="delete * from 表3 where PO='" & num & "'"
        CurrentDb.Execute ssql
        for j=1 to dsum("扎数","表1",PO='" & num & "'")
            ssql="insert into 表3 (PO,扎号,码数,颜色,件数) "
            ssql=ssql & "values ('" &num & "',"
            ssql=ssql & j & ",'"
            ssql=ssql & dlookup("码数","表1",PO='" & num & "'") & "','"
            ssql=ssql & dlookup("颜色","表1",PO='" & num & "'") & "',"
            ssql=ssql & dlookup("件数","表1",PO='" & num & "'") & ")"
            CurrentDb.Execute ssql
        next
        rs.MoveNext
   next
   rs.close:rs=nothing
end function

卢先生 发表于:2012-09-06 00:10:55

谢谢煮江品茶老师,但是第二个循环出现语法错误,再有就是这个函数怎么用,我很菜的,还要麻烦您

Function 拆分扎数()
   Dim rs As New ADODB.Recordset
   Dim ssql As String
   Dim num As String
   Dim i As Long, j As Long
   ssql = "select PO from 表1 groud by PO"
   rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   For i = 1 To rs.RecordCount
        num = rs!PO.Value
        ssql = "delete * from 表3 where PO='" & num & "'"
        CurrentDb.Execute ssql
        for j=1 to dsum("扎数","表1",PO='" & num & "'")
            ssql = "insert into 表3 (PO,扎号,码数,颜色,件数) "
            ssql = ssql & "values ('" & num & "',"
            ssql = ssql & j & ",'"
            ssql=ssql & dlookup("码数","表1",PO='" & num & "'") & "','"
            ssql=ssql & dlookup("颜色","表1",PO='" & num & "'") & "',"
            ssql=ssql & dlookup("件数","表1",PO='" & num & "'") & ")"
            CurrentDb.Execute ssql
        Next
        rs.MoveNext
   Next
   rs.Close: rs = Nothing
End Function



煮江品茶 发表于:2012-09-06 08:24:49
卢先生 发表于:2012-09-06 09:17:18
非常感谢煮江品茶老师,解决了麻烦问题,现在基本上可以了,但是怎么拆分后同一PO号记录的码数,颜色,件数都和第一条一样,从第4条开始应该是123 4 大 黄 50,123 5 大 黄 50,。。。,水平太差,想不明白啊

卢先生 发表于:2012-10-03 17:30:35
现在基本上满足要求了,程序能够简化就更好了点击下载此附件

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