Foxtable(狐表)用户栏目专家坐堂 → 不同表间字符对比和计算


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

主题:不同表间字符对比和计算

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/28 14:49:00 [显示全部帖子]

For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr As DataRow = DataTables("客观题答案").find("客观题 = '" & dr("客观题") & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr Is Nothing Then
        ndr("成绩1") = 0
    Else
        ndr("成绩1") = 1
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 9:21:00 [显示全部帖子]

For Each dr As DataRow In DataTables("答题数据1").datarows '循环表的每一行
    Dim fdr As DataRow = DataTables("客观题答案").find("客观题 = '" & dr("客观题") & "'") '在答案表查找对应条件的行
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'") '在成绩表查找
    If ndr Is Nothing Then '如果成绩表没有找到对应学号的人,就增加一行
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr Is Nothing Then '如果在答案表没有找到对应的行
        ndr("成绩1") = 0
    Else '如果找到了
        ndr("成绩1") = 1
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 17:08:00 [显示全部帖子]

 逻辑就有问题。你可以用试卷号作为区分,而不是什么第一行第二行。如果只需要第一行,就把第二行删掉。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 17:21:00 [显示全部帖子]

那你就加上试卷号或者题号区分哪题是哪题的

 

Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr1("客观题1") & "' and 试卷号 = '" & dr1("试卷号") & "'","试卷号")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/29 20:12:00 [显示全部帖子]

Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").caption & "'")
Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").caption & "'")

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 15:30:00 [显示全部帖子]

Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
    Dim kmdr As DataRow = DataTables("客观题描述").find("试卷号='" & DataTables("答题数据1").Name & "'")  '从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
    Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & dr("学号") & "'")
    If fdr1 IsNot Nothing Then
        Dim kegtdr1 As String = dr("客观题1")
        Dim kegtdadr1 As String = fdr1("客观题1")
       
        If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
        Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
            wtzj("问题总结") = kmdr("选项A")
        End If
        If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
        Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项B")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项B")
            End If
        End If
        If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
        Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项C")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项C")
            End If
        End If
        If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
        Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
            If wtzj("问题总结").IsNull Then
                wtzj("问题总结") = kmdr("选项D")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项D")
            End If
        End If
    End If
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 19:02:00 [显示全部帖子]

是不是这里没进去?

 

If fdr1 IsNot Nothing Then

 

你对fdr1的查询,是不是条件错了?要改成这样?

 

Dim fdr1 As DataRow = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 19:57:00 [显示全部帖子]

那就重新查一次

 

fdr1 = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'")

If fdr1 IsNot Nothing Then

 

你调试代码的时候,加入msgbox弹出值,可以定位到哪里出错的。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/3 21:44:00 [显示全部帖子]

Dim kgt1,kgt2,zgt1,zgt2 As Integer
For Each dr As DataRow In DataTables("答题数据1").datarows
    Dim fdr1 As DataRow = DataTables("客观题答案").find("客观题1 = '" & dr("客观题1") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim fdr2 As DataRow = DataTables("客观题答案").find("客观题2 = '" & dr("客观题2") & "' And 试卷号 = '" & DataTables("答题数据1").name & "'")
    Dim ndr As DataRow = DataTables("成绩表").Find("学号 = '" & dr("学号") & "'")
    If ndr Is Nothing Then
        ndr = DataTables("成绩表").AddNew
        ndr("学号") = dr("学号")
    End If
    If fdr1 Is Nothing Then
        kgt1 = 0
    Else
        kgt1= 1
    End If
    If fdr2 Is Nothing Then
        kgt2 = 0
    Else
        kgt2= 1
    End If
    If dr("主观题1") = "t" Then
        zgt1 = 1
    Else
        zgt1=0
    End If
    If dr("主观题2") = "t" Then
        zgt2 = 1
    Else
        zgt2=0
    End If      '给相关列赋值
    ndr("成绩1") = kgt1 + kgt2 + zgt1+ zgt2
    Dim kmdr As DataRow = DataTables("客观题描述").find("试卷号='" & DataTables("答题数据1").Name & "'")  '从这以下是对比客观题答案和答题数据1录入客观题1找出不同选项,并将这些选项对应的内容从客观题描述中提取出来填到问题总结中
    Dim wtzj As DataRow = DataTables("问题总结").find("学号 = '" & dr("学号") & "'")
    fdr1 = DataTables("客观题答案").find("试卷号 = '" & DataTables("答题数据1").name & "'")
   
    If fdr1 IsNot Nothing Then
        Dim kegtdr1 As String = dr("客观题1")
        Dim kegtdadr1 As String = fdr1("客观题1")
       
        If kegtdr1.contains("a") = True And kegtdadr1.contains("a") = True
        Else If kegtdr1.contains("a") = True Or kegtdadr1.contains("a") = True Then
            wtzj("问题总结") = kmdr("选项A")
        End If
        If kegtdr1.contains("b") = True And kegtdadr1.contains("b") = True
        Else If kegtdr1.contains("b") = True Or kegtdadr1.contains("b") = True Then
            If wtzj.IsNull("问题总结") Then
                wtzj("问题总结") = kmdr("选项B")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项B")
            End If
        End If
        If kegtdr1.contains("c") = True And kegtdadr1.contains("c") = True
        Else If kegtdr1.contains("c") = True Or kegtdadr1.contains("c") = True Then
            If wtzj.IsNull("问题总结") Then
                wtzj("问题总结") = kmdr("选项C")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项C")
            End If
        End If
        If kegtdr1.contains("d") = True And kegtdadr1.contains("d") = True
        Else If kegtdr1.contains("d") = True Or kegtdadr1.contains("d") = True Then
            If wtzj.IsNull("问题总结") Then
                wtzj("问题总结") = kmdr("选项D")
            Else wtzj("问题总结") = wtzj("问题总结") & kmdr("选项D")
            End If
        End If
    End If
Next

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/6 12:01:00 [显示全部帖子]

你提问的时候,最好说明一下你逻辑,你的代码可能是错,别人理解不了你的逻辑。

[此贴子已经被作者于2016/3/6 12:02:36编辑过]

 回到顶部
总数 13 1 2 下一页