Foxtable(狐表)用户栏目专家坐堂 → 求算法!


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

主题:求算法!

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/2 8:55:00 [显示全部帖子]

你至少得说一下排除依据啊, 你前后两个表,完全看不出依据来.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/2 9:15:00 [显示全部帖子]

上例子,基本上思路是,  取得所有人的名字,然后利用Select 根据日期排序获取出来
  一行行遍历 判断.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/2 9:49:00 [显示全部帖子]

有个问题,你例子中的王五,取那一条数据是合理的?

此例子是根据你1 2楼的图,取第一条

Tables("表A").sort="姓名,开始时间"
Dim et As Date
Dim name As String
Dim rr As Row
For Each r As Row In Tables("表A")
    If name = r("姓名") Then
        If r("开始时间") >= et Then
             rr = Tables("表D").AddNew
        rr("姓名")=r("姓名")
        rr("开始时间")=r("开始时间")
        rr("结束时间")=r("结束时间")
        et = r("结束时间")
            et = r("结束时间")
        End If
    Else
        rr = Tables("表D").AddNew
        rr("姓名")=r("姓名")
        rr("开始时间")=r("开始时间")
        rr("结束时间")=r("结束时间")
        et = r("结束时间")
    End If
    name= r("姓名") 
Next


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/2 9:55:00 [显示全部帖子]

看6楼.你仔细看看你5楼的例子. 

王五 2015/3/8 0:00:00 2015/3/11 0:00:00
王五 2015/3/8 0:00:00 2015/3/12 0:00:00
王五 2015/3/9 0:00:00 2015/3/16 0:00:00


王五取谁?  

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/2 10:08:00 [显示全部帖子]

提问一开始就直接说明白要怎么做.

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/2 10:11:00 [显示全部帖子]


Tables("表A").sort="姓名,开始时间"
Dim et As Date
Dim name As String
Dim rr As Row
For Each r As Row In Tables("表A")
    If name = r("姓名") Then
        If r("开始时间") >= et Then
            rr = Tables("表D").AddNew
            rr("姓名")=r("姓名")
            rr("开始时间")=r("开始时间")
            rr("结束时间")=r("结束时间")
            et = r("结束时间")
        Else If rr("结束时间")<r("结束时间") Then
            rr("结束时间")= r("结束时间")
        End If
    Else
        rr = Tables("表D").AddNew
        rr("姓名")=r("姓名")
        rr("开始时间")=r("开始时间")
        rr("结束时间")=r("结束时间")
        et = r("结束时间")
    End If
    name= r("姓名")
Next


 回到顶部