以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 跨表数据引用和计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81415) |
||||
-- 作者:33chyh -- 发布时间:2016/2/27 9:34:00 -- 跨表数据引用和计算 向专家请教这样一个问题:现有四个表——成绩表、客观题答案、答题数据1和答题数据2。成绩表中的成绩1是根据答题数据1和客观题答案比较以及主观题答案计算得出。如果答题数据1中的答案与客观题答案中的第一行一致,得1分;如果主观题答案是t,得1分。两者相加就是该学生的成绩,将此成绩写到成绩表中的成绩1相应行中。同理答题数据2与上述要求一致。我的问题是:这样的要求可不可以用e事件编程完成。如果可以用应该怎样做呢?如果不能这样做,应该怎样做才行呢?
[此贴子已经被作者于2016/2/27 14:17:34编辑过]
|
||||
-- 作者:Hyphen -- 发布时间:2016/2/27 10:33:00 -- 参考: |
||||
-- 作者:33chyh -- 发布时间:2016/2/27 16:09:00 -- 衷心感谢 谢谢Hyphen老师提供的示例链接非常有用,尤其对我这个初学者帮助很大!!! |
||||
-- 作者:33chyh -- 发布时间:2016/2/27 17:01:00 -- 为什么我在答题数据1写入下列代码后,成绩表中成绩1列只有主观题2得相应分值呢?
Dim zgt As Integer \'声明储值变量
Dim zgt1 As Integer \'声明储值变量 Dim zgt2 As Integer \'声明储值变量 Dim Filter As String = "学号 = \'" & e.DataRow("学号") & "\'" \'声明关联列 Dim drs As List(of DataRow) = DataTables("成绩表").Select(Filter) \'声明关联列变量集合 Dim dr As DataRow \'搜索变量集合每一个成员 Select Case e.DataCol.Name Case "主观题1" \'确定主表改变列 For Each dr In drs If e.NewValue = "t" Then zgt1 = 1 End If If e.NewValue = "f" Then zgt1 = 0 End If \'给相关列赋值 Next Case "主观题2" \'确定主表改变列 For Each dr In drs If e.NewValue = "t" Then zgt2 = 1 End If If e.NewValue = "f" Then zgt2 = 0 End If \'给相关列赋值 Next zgt=zgt1+zgt2 dr("成绩1") = zgt \'将相关值写入从表相关列 end select
|
||||
-- 作者:Hyphen -- 发布时间:2016/2/27 17:31:00 -- Dim zgt As Integer \'声明储值变量 Dim zgt1 As Integer \'声明储值变量 Dim zgt2 As Integer \'声明储值变量 Dim Filter As String = "学号 = \'" & e.DataRow("学号") & "\'" \'声明关联列 Dim drs As List(of DataRow) = DataTables("成绩表").Select(Filter) \'声明关联列变量集合 Dim dr As DataRow \'搜索变量集合每一个成员 Select Case e.DataCol.Name Case "主观题1","主观题2" If e.DataRow("主观题1") = "t" Then zgt1 = 1 End If If e.DataRow("主观题2") = "t" Then zgt2 = 1 End If \'给相关列赋值 zgt=zgt1+zgt2 For Each dr In drs dr("成绩1") = zgt \'将相关值写入从表相关列 Next End Select
|
||||
-- 作者:33chyh -- 发布时间:2016/2/27 17:54:00 -- 谢谢您的帮助 |
||||
-- 作者:33chyh -- 发布时间:2016/2/27 18:24:00 -- Hyphen 老师:我想将答题数据1中的客观题列内容与客观题答案中的第一行第一列内容比较,如果一致,则将变量kgt赋值为1。请问看帮助中的哪部分呢? |