Foxtable(狐表)用户栏目专家坐堂 → [求助]项目数据批量拆分


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

主题:[求助]项目数据批量拆分

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


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
[求助]项目数据批量拆分  发帖心情 Post By:2012/9/13 12:08:00 [只看该作者]

 

    求教:对于将数据拆分的情况现在是这样子的,如表上所示每次只能将一行的数据拆分开来;

  

       请问下,我现在想将表1的3个编号的项目或者更多的项目批量拆分到表3,这个要怎么弄;

                   如何避免拆分添加数据的时候重复拆分?

                      谢谢啦~

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目数据批量拆分.table


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/9/13 13:40:00 [只看该作者]

怎么叫重复?如何来区分重复?是以委托编号来区分吗?


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/9/13 13:58:00 [只看该作者]

感觉好烦啊

 

Tables("表C").StopRedraw
Dim Arys As List(Of String())
Arys = DataTables("表A").GetUniqueValues("委托编号 is not null", "委托编号","委托项目")
For Each Ary As String() In Arys
    Dim s As String = Ary(1)
    Dim Values() As String = s.split(",")
    For i As Integer = 0 To Values.Length - 1
        Dim Arys1 As List(Of String())
        Arys1 = DataTables("表D").GetUniqueValues("委托项目 = '" & Values(i) & "'", "项目依据","项目明细","明细依据","项目单位")
        For Each Ary1 As String() In Arys1
            Dim dr As DataRow
            dr = DataTables("表C").Find("委托编号 = '" & Ary(0) & "' and 委托项目 = '" & Values(i) & "' and 项目依据 = '" & Ary1(0) & "' and 项目明细 = '" & Ary1(1) & "' and 明细依据 = '" & Ary1(2) & "' and 项目单位 = '" & Ary1(3) & "'")
            If dr Is Nothing Then
                Dim r As Row = Tables("表C").AddNew()
                r("委托编号") = Ary(0)
                r("委托项目") = Values(i)
                r("项目依据") = Ary1(0)
                r("项目明细") = Ary1(1)
                r("明细依据") = Ary1(2)
                r("项目单位") = Ary1(3)
            End If
        Next
    Next
Next
Tables("表C").ResumeRedraw


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


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/13 16:02:00 [只看该作者]

嘻嘻~太感谢你的帮助了~谢谢你的不厌其烦~有点小问题要继续请教下:

 

请问下我这样改了之后有什么问题吗?  有些数据会重复添加,有些又不会!?

还有个小小要求,我可以根据我选中的内容来拆分添加吗?

 

Tables("流转记录表").StopRedraw
Dim Arys As List(Of String())
Arys = DataTables("样品信息").GetUniqueValues("", "样品编号","检测项目")
For Each Ary As String() In Arys
    Dim s As String = Ary(1)
    Dim Values() As String = s.split(",")
    For i As Integer = 0 To Values.Length - 1
        Dim Arys1 As List(Of String())
        Arys1 = DataTables("检测项目").GetUniqueValues("流转项目 = '" & Values(i) & "'", "检测项目","检测依据","检测部门","检测费用","费用说明")
        For Each Ary1 As String() In Arys1
            Dim dr As DataRow
            dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' and 检测项目 = '" & Ary1(0) & "' and 检测依据 = '" & Ary1(1) & "' and 检测部门 = '" & Ary1(2) & "' and 检测费用 = '" & Ary1(3) & "' and 费用说明 = '" & Ary1(4) &  "'")
            If dr Is Nothing Then
                Dim r As Row = Tables("流转记录表").AddNew()
                r("样品编号") = Ary(0)
                r("流转项目") = Values(i)
                r("检测项目") = Ary1(0)
                r("检测依据") = Ary1(1)
                r("检测部门") = Ary1(2)
                r("检测费用") = Ary1(3)
                r("费用说明") = Ary1(4)
            End If
        Next
    Next
Next
Tables("流转记录表").ResumeRedraw

 


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/13 17:10:00 [只看该作者]

 第一个问题,会不会是你【样品信息】表有重复的【样品编号】?

 导致,数据重复添加?

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/13 17:13:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/13 17:33:00 [只看该作者]

dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' and 检测项目 = '" & Ary1(0) & "' and 检测依据 = '" & Ary1(1) & "' and 检测部门 = '" & Ary1(2) & "' and 检测费用 = '" & Ary1(3) & "' and 费用说明 = '" & Ary1(4) &  "'")

 

我把这条数据改成

 

dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' “)

 

这样就不会重复了~!

 

其实我还不是很懂什么原因~!


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/13 17:44:00 [只看该作者]

以下是引用lxhmax在2012-9-13 17:33:00的发言:

dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' and 检测项目 = '" & Ary1(0) & "' and 检测依据 = '" & Ary1(1) & "' and 检测部门 = '" & Ary1(2) & "' and 检测费用 = '" & Ary1(3) & "' and 费用说明 = '" & Ary1(4) &  "'")

 

我把这条数据改成

 

dr = DataTables("流转记录表").Find("样品编号 = '" & Ary(0) & "' and 流转项目 = '" & Values(i) & "' “)

 

这样就不会重复了~!

 

其实我还不是很懂什么原因~!


后面的列有空值吗?

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


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2012/9/13 20:56:00 [只看该作者]

有两列是空值来的~!

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/14 9:07:00 [只看该作者]

 空值不能直接比较。

 比如 费用说明 是空值

 需要这样比较:"费用说明 is Null And " & "'" & Ary1(4) & "' = ''"

 回到顶部
总数 16 1 2 下一页