以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]如何用Select Case语句执行将匹配条件保存在另外一张表中的情况的代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88989)
|
-- 作者:jjjeyes
-- 发布时间:2016/8/13 0:22:00
-- [求助]如何用Select Case语句执行将匹配条件保存在另外一张表中的情况的代码
自己做了个学生肺活量评价的工具,已经将肺活量的评分标准事先录入到表格内,如下:
此主题相关图片如下:qq截图20160813001643.jpg
此主题相关图片如下:qq截图20160813001841.jpg
请问怎么写代码。
|
-- 作者:cbt
-- 发布时间:2016/8/13 8:12:00
--
Tables("表B").Rows(0)("第一列") = Tables("表A").Rows(0)("第一列")
|
-- 作者:Hyphen
-- 发布时间: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
-- 发布时间:2016/8/13 11:02:00
--
我的意思是:在“学生信息”表的“肺活量成绩”列输入成绩,通过和“肺活量评分”表“大一二男”列相关数据的比对,算出分数然后填入到“学生信息”表的“肺活量得分”列中
|
-- 作者:Hyphen
-- 发布时间:2016/8/13 11:45:00
--
看3楼,列名表名自己改改
|
-- 作者:jjjeyes
-- 发布时间:2016/8/14 0:46:00
--
在执行您给的代码的时候可以做到想要的结果,可是对应的分值向上偏差了一行,不过这个可以在评分标准里做修改。但是,在删除刚输入的“肺活量成绩”的时候会出现下面的信息: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2016.6.26.1 错误所在事件:表,学生信息,DataColChanged 详细错误信息: 调用的目标发生了异常。 无法在 System.Double 和 System.String 上执行“>=”操作。
何解?
|
-- 作者:大红袍
-- 发布时间: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
-- 发布时间:2016/8/14 18:18:00
--
谢谢,问题解决了。请问这是什么原因呢?为什么改为了& e.DataRow("肺活量成绩") & 就可以了?
|
-- 作者:大红袍
-- 发布时间:2016/8/14 18:49:00
--
看7楼红色代码,是红色代码的原因。
|