Foxtable(狐表)用户栏目专家坐堂 → [求助]如何调用最新或最后,或最高级别的一条记录


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

主题:[求助]如何调用最新或最后,或最高级别的一条记录

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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
[求助]如何调用最新或最后,或最高级别的一条记录  发帖心情 Post By:2012/7/18 19:08:00 [只看该作者]

一个工号对应多条记录,比如“学历教育”表中,工号A001记录了该人员的中专、大专、本科3条学历记录,想在“基本资料”表中“最高学历”列只调用最高学历。如何实现?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/7/18 23:31:00 [只看该作者]

增加一个学历设置:

1            小学一年级

2            小学一年级

3            小学一年级

4            小学一年级

……

n            本科  

……

 

从文凭到学历,一一对应,否则,电脑来判断最高级别,您需要在您用到的地方做N个判断才能实现。                 


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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
  发帖心情 Post By:2012/7/19 18:56:00 [只看该作者]

现在我做了一个例子,求高手指点,工号001的人员基本资料表中,最高学历_学历,最高学历_专业, 最高学历_ 毕业时间,最高学历_毕业院校,如果读取“学历教育”表中,001人员的最后一条学历记录。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学历关联.table


顺便问一下,这个表里DataColChanged中添加了
'如果刚刚输入的是工号列
If e.DataCol.Name = "姓名" Then
    Dim dr As DataRow
    '在基本资料表查找所输入工号的行
    dr = DataTables("基本资料").Find("[姓名] = '" & e.DataRow("姓名")& "'")
    If dr IsNot Nothing Then '如果找到
        '将找到行的姓名和工作单位内容填入到正在输入的行中.
        e.DataRow("工号") = dr("工号")
        e.DataRow("工作单位") = dr("工作单位")
    Else
        '否则清除姓名和工作单位两列的内容
        e.DataRow("工号") = Nothing
        e.DataRow("工作单位") = Nothing
    End If
End If
可是姓名和工作单位没有根据工号自动显示,这是怎么回事?

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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
  发帖心情 Post By:2012/7/19 19:31:00 [只看该作者]

图片点击可在新窗口打开查看求助

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


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

你是根据工号来写入姓名和单位,你试试在学历教育表的姓名列输入看看

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


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

另外一个问题看这里

 

http://www.foxtable.com/help/topics/0396.htm

 

 


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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
  发帖心情 Post By:2012/7/28 11:09:00 [只看该作者]

最高学历的问题还是没有解决,顶起来。

 

现在我的思路是,[基本资料]表读取[学历教育]表中"毕业时间"列,当该工号的毕业时间最大,那么这个毕业时间就是最高学历时间,然后将该行的"毕业时间","学历","毕业院校","专业"填充到[基本资料]表中的"毕业时间","学历","毕业院校","专业"列.

看到一个代码是,我觉得还是不会DataTables("学历教育").Compute("Max(日期)")
请各位高手指点.


 回到顶部
美女呀,离线,留言给我吧!
dancedy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:17 积分:900 威望:0 精华:0 注册:2011/8/4 16:34:00
  发帖心情 Post By:2012/7/28 11:52:00 [只看该作者]

Dim dr As DataRow = DataTables("学历教育").Find("工号 = '" & e.DataRow("工号") & "'","毕业时间 Desc")

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


加好友 发短信
等级:幼狐 帖子:100 积分:900 威望:0 精华:0 注册:2011/12/16 14:00:00
  发帖心情 Post By:2012/7/28 18:06:00 [只看该作者]

是写成这样吗?还是不行。。。

If e.DataCol.Name = "工号" Then
    Dim dr As DataRow
    dr = DataTables("学历教育").Find("[工号] = '" & e.DataRow("工号")& "'","毕业时间 Desc")
    If dr IsNot Nothing Then
        e.DataRow("学历") = dr("学历")
        e.DataRow("毕业院校") = dr("毕业院校")
        e.DataRow("专业") = dr("专业")
        e.DataRow("毕业时间") = dr("毕业时间")
    Else
        e.DataRow("学历") = Nothing
        e.DataRow("毕业院校") = Nothing
        e.DataRow("专业") = Nothing
        e.DataRow("毕业时间") = Nothing
    End If
End If


 回到顶部