Foxtable(狐表)用户栏目专家坐堂 → [求助]如何用Select Case语句执行将匹配条件保存在另外一张表中的情况的代码


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

主题:[求助]如何用Select Case语句执行将匹配条件保存在另外一张表中的情况的代码

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助]如何用Select Case语句执行将匹配条件保存在另外一张表中的情况的代码  发帖心情 Post By:2016/8/13 0:22:00 [只看该作者]

自己做了个学生肺活量评价的工具,已经将肺活量的评分标准事先录入到表格内,如下:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160813001643.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160813001841.jpg
图片点击可在新窗口打开查看

 

请问怎么写代码。


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


加好友 发短信
等级:二尾狐 帖子:569 积分:4210 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2016/8/13 8:12:00 [只看该作者]

Tables("表B").Rows(0)("第一列") = Tables("表A").Rows(0)("第一列")

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/13 9:24:00 [只看该作者]

学生信息DataColChanged事件

Select Case e.DataCol.Name
    Case "肺活量成绩"
        If e.DataRow("性别") = 1 Then
            Dim dr As DataRow = DataTables("表A").Find("大一二男 >= '" & e.NewValue & "'","大一二男")
            If dr IsNot Nothing Then
                e.DataRow("得分") = dr("得分")
                e.DataRow("等级") = dr("等级")
            End If
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2016/8/13 11:02:00 [只看该作者]

我的意思是:在“学生信息”表的“肺活量成绩”列输入成绩,通过和“肺活量评分”表“大一二男”列相关数据的比对,算出分数然后填入到“学生信息”表的“肺活量得分”列中

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/13 11:45:00 [只看该作者]

看3楼,列名表名自己改改

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2016/8/14 0:46:00 [只看该作者]

在执行您给的代码的时候可以做到想要的结果,可是对应的分值向上偏差了一行,不过这个可以在评分标准里做修改。
但是,在删除刚输入的“肺活量成绩”的时候会出现下面的信息:
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.6.26.1
错误所在事件:表,学生信息,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.Double 和 System.String 上执行“>=”操作。


何解?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/14 12:08:00 [只看该作者]

Select Case e.DataCol.Name
    Case "肺活量成绩", "性别"
        If e.DataRow("性别") = "1" Then
            Dim dr As DataRow = DataTables("表A").Find("大一二男 >= '" & e.DataRow("肺活量成绩") & "'","大一二男")
            If dr IsNot Nothing Then
                e.DataRow("得分") = dr("得分")
                e.DataRow("等级") = dr("等级")
            End If
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2016/8/14 18:18:00 [只看该作者]

谢谢,问题解决了。
请问这是什么原因呢?为什么改为& e.DataRow("肺活量成绩") & 就可以了?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/14 18:49:00 [只看该作者]

 看7楼红色代码,是红色代码的原因。

 回到顶部