以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求算法! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66258) |
-- 作者:Bin -- 发布时间:2015/4/2 8:55:00 -- 你至少得说一下排除依据啊, 你前后两个表,完全看不出依据来. |
-- 作者:Bin -- 发布时间:2015/4/2 9:15:00 -- 上例子,基本上思路是, 取得所有人的名字,然后利用Select 根据日期排序获取出来 一行行遍历 判断.
|
-- 作者:Bin -- 发布时间: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 -- 发布时间: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 王五取谁?
|
-- 作者:有点甜 -- 发布时间:2015/4/2 10:07:00 --
[此贴子已经被作者于2015/4/2 10:17:19编辑过]
|
-- 作者:Bin -- 发布时间:2015/4/2 10:08:00 -- 提问一开始就直接说明白要怎么做. |
-- 作者:Bin -- 发布时间: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 |