Foxtable(狐表)用户栏目专家坐堂 → [求助]统计数据代码出问题原因


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

主题:[求助]统计数据代码出问题原因

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


加好友 发短信
等级:幼狐 帖子:124 积分:1202 威望:0 精华:0 注册:2015/12/27 21:01:00
[求助]统计数据代码出问题原因  发帖心情 Post By:2016/8/22 0:09:00 [只看该作者]

老师好!我想在“客观问题描述”表中写入“知A”、“知B”等相应值后,在“各卷知识点频度统计”表中对应试卷号的客观题对应行中进行出现次数统计。例如在下图“客观问题描述”表的试卷号为“1”对应行中输入相应数据后,在“各卷知识点频度统计”表中“试卷号与题型”列值为“1客观题”的“知A”、“知B”、“知C”、“知D”相应列中统计数为2、1、3、2.


图片点击可在新窗口打开查看此主题相关图片如下:整合5.jpg
图片点击可在新窗口打开查看 

问题:在“客观问题描述”表的试卷号为“2”对应行中输入相应数据后,在“各卷知识点频度统计”表中试卷号与题型”列值为“2客观题”的“知A”、“知B”、“知C”、“知D”相应列中统计数也应为2、1、3、2.但是实际却是在这一行的对应列中统计的结果是两次之和。

需要老师帮助我看看编写的代码中哪个地方出现问题了。谢谢!!!

代码如下:

Dim kgtztjdr As DataRow = DataTables("各卷知识点频度统计").find("试卷号与题型 ='" & e.DataRow("试卷号") & "客观题" & "'")
kgtztjdr("知A") = 0
kgtztjdr("知B") = 0
kgtztjdr("知C") = 0
kgtztjdr("知D") = 0
For Each dr1 As DataRow In DataTables("客观问题描述").DataRows
For i As Integer = 1 To 2
If dr1("题" & i & "A范") IsNot Nothing Then
    Select Case dr1("题" & i & "A范")
        Case "知A"
            kgtztjdr("知A") = kgtztjdr("知A") + 1
        Case "知B"
            kgtztjdr("知B") = kgtztjdr("知B") + 1
        Case "知C"
            kgtztjdr("知C") = kgtztjdr("知C") + 1
        Case "知D"
            kgtztjdr("知D") = kgtztjdr("知D") + 1
    End Select
    Select Case dr1("题" & i & "B范")
        Case "知A"
            kgtztjdr("知A") = kgtztjdr("知A") + 1
        Case "知B"
            kgtztjdr("知B") = kgtztjdr("知B") + 1
        Case "知C"
            kgtztjdr("知C") = kgtztjdr("知C") + 1
        Case "知D"
            kgtztjdr("知D") = kgtztjdr("知D") + 1
    End Select
    Select Case dr1("题" & i & "C范")
        Case "知A"
            kgtztjdr("知A") = kgtztjdr("知A") + 1
        Case "知B"
            kgtztjdr("知B") = kgtztjdr("知B") + 1
        Case "知C"
            kgtztjdr("知C") = kgtztjdr("知C") + 1
        Case "知D"
            kgtztjdr("知D") = kgtztjdr("知D") + 1
    End Select
    Select Case dr1("题" & i & "D范")
        Case "知A"
            kgtztjdr("知A") = kgtztjdr("知A") + 1
        Case "知B"
            kgtztjdr("知B") = kgtztjdr("知B") + 1
        Case "知C"
            kgtztjdr("知C") = kgtztjdr("知C") + 1
        Case "知D"
            kgtztjdr("知D") = kgtztjdr("知D") + 1
    End Select
End If
Next
Next

文件如下:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.foxdb

[此贴子已经被作者于2016/8/22 0:14:04编辑过]

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


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

Dim kgtztjdr As DataRow = DataTables("各卷知识点频度统计").find("试卷号与题型 ='" & e.DataRow("试卷号") & "客观题" & "'")
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
For Each cl As DataCol In e.DataTable.DataCols
    Select Case e.DataRow(cl.Name)
        Case "知A"
            a += 1
        Case "知B"
            b += 1
        Case "知C"
            c += 1
        Case "知D"
            d += 1
    End Select
    
Next
kgtztjdr("知A") = a
kgtztjdr("知B") = b
kgtztjdr("知C") = c
kgtztjdr("知D") = d

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


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

谢谢Hyphen老师,经过测试您提供的代码满足我的想法。感谢您一直以来对我的帮助!!!


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


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

Hyphen老师您好!

我按照您提供的代码进行一些改变,但是在运行时出现了一些意外,请您帮助我看看是哪个地方出现问题了?具体见下图:

 
图片点击可在新窗口打开查看此主题相关图片如下:整合10.jpg
图片点击可在新窗口打开查看

改动代码如下:(改动部分用荧光笔标注)

Dim kgtztjdr As DataRow = DataTables("各卷知识点频度统计").find("试卷号与题型 ='" & e.DataRow("试卷号") & "客观题" & "'")
Dim t1 As Integer
Dim t2 As Integer
Dim t3 As Integer
Dim t4 As Integer
Dim t5 As Integer
Dim t6 As Integer
For Each cl As DataCol In e.DataTable.DataCols
    Select Case e.DataRow(cl.Name)
        Case "测定纯净物组成"
            t1 + = 1
        Case "符号描述纯净物组成"
            t2 + = 1
        Case "定量描述纯净物组成"
            t3 + = 1
        Case "纯净物组成分类"
            t4 + = 1
        Case "描述混合物组成及含量"
            t5 + = 1
        Case "测定混合物组成及含量"
            t6 + = 1                 
    End Select
Next
kgtztjdr("测定纯净物组成") = t1
kgtztjdr("符号描述纯净物组成") = t2
kgtztjdr("定量描述纯净物组成") = t3
kgtztjdr("纯净物组成分类") = t4
kgtztjdr("描述混合物组成及含量") = t5
kgtztjdr("测定混合物组成及含量") = t6

文件如下:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.foxdb

[此贴子已经被作者于2016/8/22 19:01:43编辑过]

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


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

Dim kgtztjdr As DataRow = DataTables("各卷知识点频度统计").find("试卷号与题型 ='" & e.DataRow("试卷号") & "客观题" & "'")
Dim t1 As Integer
Dim t2 As Integer
Dim t3 As Integer
Dim t4 As Integer
Dim t5 As Integer
Dim t6 As Integer
For Each cl As DataCol In e.DataTable.DataCols
    If cl.IsString Then
        Select Case e.DataRow(cl.Name)
            Case "测定纯净物组成"
                t1 + = 1
            Case "符号描述纯净物组成"
                t2 + = 1
            Case "定量描述纯净物组成"
                t3 + = 1
            Case "纯净物组成分类"
                t4 + = 1
            Case "描述混合物组成及含量"
                t5 + = 1
            Case "测定混合物组成及含量"
                t6 + = 1
        End Select
    End If
Next
kgtztjdr("测定纯净物组成") = t1
kgtztjdr("符号描述纯净物组成") = t2
kgtztjdr("定量描述纯净物组成") = t3
kgtztjdr("纯净物组成分类") = t4
kgtztjdr("描述混合物组成及含量") = t5
kgtztjdr("测定混合物组成及含量") = t6

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


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

谢谢大红袍老师的帮助,使我及时解决出现的问题。

 回到顶部