Foxtable(狐表)用户栏目专家坐堂 → [求助]报错原因?


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

主题:[求助]报错原因?

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
[求助]报错原因?  发帖心情 Post By:2014/4/28 23:33:00 [显示全部帖子]

Dim r As Integer = Tables(Km & "小题分析").Cols("难度").Index
Dim q As Integer = Tables(Km & "小题分析").Cols("区分度").Index

ElseIf Lx = "单项填空"  Then
    dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 14, r)
    dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 14, q)   
ElseIf Lx = "完形填空"  Then
    dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 15, r, 34, r)
    dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 15, q, 34, q)
ElseIf Lx = "阅读理解"  Then
    dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 35, r, 54, r)
    dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 35, q, 54, q)
ElseIf Lx = "写作"  Then
    dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 55, r, 56, r)
    dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 55, q, 56, q)
ElseIf Lx = Km  Then
    dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 56, r)
    dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 56, q)
Else
End If

当代码执行ElseIf Lx = "单项填空"  Then时报错,其它“完形填空”、“阅读理解”等就没问题。是怎么回事?请指教。谢谢! 


图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-4-28 23:32:55编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2014/4/29 9:50:00 [显示全部帖子]

总行数62行,取值是r列的1-15行(0-14),q列的1-15行 (0-14) ,索引没超出范围、非负值并小于集合。
只要删除dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 14, r)
           dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 14, q)
就没问题了,但这是计算当Lx = "单项填空"  即类型=“单项填空”时的难度(Km & "小题分析"表中r列1-15行)和区分度(Km & "小题分析"表中q列1-15行)。不知怎么回事?请指教。谢谢!

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2014/4/29 10:08:00 [显示全部帖子]

文件上传。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:复印高中试卷难度区分度分析.rar


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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2014/4/29 10:34:00 [显示全部帖子]

将代码:ElseIf Lx = "单项填空"  Then
               dr("难度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, r, 14, r)
               dr("区分度") = Tables(Km & "小题分析").Aggregate(AggregateEnum.Average, 0, q, 14, q)
删除后,执行就没问题。好像问题就出在这里。
[此贴子已经被作者于2014-4-29 10:35:02编辑过]

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


加好友 发短信
等级:婴狐 帖子:41 积分:479 威望:0 精华:0 注册:2012/4/12 9:51:00
  发帖心情 Post By:2014/4/29 13:24:00 [显示全部帖子]

是这样。谢谢!

应该在For Each Th As String In DataTables("答案设置").GetValues( "题号","科目 = '"& Km &"'")
下的代码执行后才能再给条件:

        For Each dr As DataRow In DataTables(Km & "小题分析").DataRows
               Dim r As Integer = Tables(Km & "小题分析").Cols("难度").Index
               Dim q As Integer = Tables(Km & "小题分析").Cols("区分度").Index
               Dim Lx As String = dr("题号")
               If lx = "单项填空"  Then
执行后面的代码。是这样理解的吧?


 回到顶部