Foxtable(狐表)用户栏目专家坐堂 → [求助]用for each语句简化代码


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

主题:[求助]用for each语句简化代码

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


加好友 发短信
等级:幼狐 帖子:124 积分:1196 威望:0 精华:0 注册:2015/12/27 21:01:00
[求助]用for each语句简化代码  发帖心情 Post By:2016/8/17 7:28:00 [只看该作者]

老师您好!帮助中for each语句的例子已经看过多次,在解决下面问题时还不会运用。下面是自己编写一段代码,也能实现相应功能。但是代码太多。如何用for each语句简化用荧光笔标注的代码?请您给予指导。
具体想法:通过比较“卷1答”表和“客观题答案”表中对应项比较,完全一致,在成绩表中计得分1。
疑惑:如何用for each语句实现寻找对应列?

图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看
Dim kgt1,kgt2,kgt3 As Integer
Dim fkgdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & e.DataRow("客观题1") & "' And 试卷号 = '" & DataTables("卷1答").name.Chars(1) & "'")
Dim fkgdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & e.DataRow("客观题2") & "' And 试卷号 = '" & DataTables("卷1答").name.Chars(1) & "'")
Dim fkgdr3 As DataRow = DataTables("客观题答案").find("客观题3 = '" & e.DataRow("客观题3") & "' And 试卷号 = '" & DataTables("卷1答").name.Chars(1) & "'")
Dim ndr1 As DataRow = DataTables("成绩").Find("学号 = '" & e.DataRow("学号") & "'")
Dim ndr2 As DataRow = DataTables("卷1问").Find("学号 = '" & e.DataRow("学号") & "'")
If ndr1 Is Nothing OrElse ndr2 Is Nothing Then  '这是一个将相关表格进行同时增加行的条件代码
    ndr1 = DataTables("成绩").AddNew
    ndr1("学号") = e.DataRow("学号")
    ndr2 = DataTables("卷1问").AddNew
    ndr2("学号") = e.DataRow("学号")
End If
I
f fkgdr1 Is Nothing Then 
    kgt1 = 0
Else
    kgt1 = 1
End If
If fkgdr2 Is Nothing Then
    kgt2 = 0
Else
    kgt2 = 1
End If
If fkgdr3 Is Nothing Then
    kgt3 = 0
Else
    kgt3 = 1
End If
ndr1("卷1") = kgt1 + kgt2 + kgt3
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb


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


加好友 发短信
等级:狐神 帖子:4633 积分:33815 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/8/17 8:20:00 [只看该作者]

Dim kgt As Integer
For i As Integer = 1 To 3
    Dim fkgdr As DataRow = DataTables("客观题答案").find("客观题" & i " = '" & e.DataRow("客观题" & i) & "' And 试卷号 = '" & DataTables("卷1答").name.Chars(1) & "'")
    If fkgdr Is Nothing Then
        kgt += 1
    End If
Next
ndr1("卷1") = kgt

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


加好友 发短信
等级:幼狐 帖子:124 积分:1196 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/8/17 19:03:00 [只看该作者]

老师您好!在您的代码中,我学到了如何设置一些动态表达式的方法。在阅读中有一处代码含义不清楚,请问“kgt += 1”的含义是什么?它和“kgt = kgt + 1”的含义一样吗? 经过试验两者效果一样。
[此贴子已经被作者于2016/8/17 19:18:31编辑过]

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


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

 a += 1 等同于 a = a + 1

 

 a &= 1 等同于 a = a & 1


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


加好友 发短信
等级:幼狐 帖子:124 积分:1196 威望:0 精华:0 注册:2015/12/27 21:01:00
  发帖心情 Post By:2016/8/17 21:41:00 [只看该作者]

谢谢大红袍老师

 回到顶部