以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]代码执行报错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109993)

--  作者:cqlpjks
--  发布时间:2017/11/24 9:42:00
--  [求助]代码执行报错
       For Each XX As String In XXs
            dr( XX &"是或好人") = DataTables("答案2").Compute("Count(单位)", "[单位] = \'" & dw & "\'And 类别 = \'" & lb & "\'And " & XX & "= \'A\'")
            dr( XX &"是或好%") = dr( XX &"是或好人")/dr("调查人数")*100
            dr( XX &"否或不好人") = DataTables("答案2").Compute("Count(单位)", "[单位] = \'" & dw & "\'And 类别 = \'" & lb & "\'And " & XX & "= \'B\'")
            dr( XX &"否或不好%") = dr( XX &"否或不好人")/dr("调查人数")*100
            
            dr("得分") += dr( XX &"是或好人") * rdr("A") + dr( XX &"否或不好人") * rdr("B")
            
            Dim Nms() As String = {XX &"是或好%",XX &"否或不好%","得分"}
            For Each nm As String In nms
                If dr.IsNull(Nm) = False Then
                    dr(Nm) = Format(dr(Nm),"0.00") \'确定小数位数
                End If
            Next
        Next
        dr("得分") = Format(dr("得分")/dr("调查人数")/7, "0.00")

代码执行到 dr("得分") += dr( XX &"是或好人") * rdr("A") + dr( XX &"否或不好人") * rdr("B") 时报错,请指教。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:教委考核专用统计程序 - 副本.rar

图片点击可在新窗口打开查看
[此贴子已经被作者于2017/11/24 9:42:29编辑过]

--  作者:有点甜
--  发布时间:2017/11/24 10:06:00
--  
            If rdr IsNot Nothing Then
                dr("得分") += dr( XX &"是或好人") * rdr("A") + dr( XX &"否或不好人") * rdr("B")
            Else
                msgbox("表名 = \'责任督学\' And 类别 = \'" & lb & "\'")
                dr("得分") += dr( XX &"是或好人")  + dr( XX &"否或不好人")
            End If

--  作者:cqlpjks
--  发布时间:2017/11/24 10:30:00
--  
If rdr IsNot Nothing Then
    dr("得分") += dr( XX &"是或好人") * rdr("A") + dr( XX &"否或不好人") * rdr("B")
Else
    msgbox("表名 = \'责任督学\' And 类别 = \'" & lb & "\'")
    dr("得分") += dr( XX &"是或好人")  + dr( XX &"否或不好人")
End If

执行时出现循环:
图片点击可在新窗口打开查看此主题相关图片如下:循环.png
图片点击可在新窗口打开查看

去掉
msgbox("表名 = \'责任督学\' And 类别 = \'" & lb & "\'")
dr("得分") += dr( XX &"是或好人")  + dr( XX &"否或不好人")
后执行时就不出现了。
但不知去掉代码完善不?
[此贴子已经被作者于2017/11/24 10:31:24编辑过]

--  作者:有点甜
--  发布时间:2017/11/24 10:38:00
--  
当查不到的时候你要怎么计算?现在还有没问题?
--  作者:cqlpjks
--  发布时间:2017/11/24 11:21:00
--  
是的,存在这个问题。怎么处理才不出现:
图片点击可在新窗口打开查看此主题相关图片如下:循环.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/11/24 11:23:04编辑过]

--  作者:有点甜
--  发布时间:2017/11/24 12:27:00
--  
去掉红色代码 msgbox("表名 = \'责任督学\' And 类别 = \'" & lb & "\'")
--  作者:cqlpjks
--  发布时间:2017/11/24 15:36:00
--  
去掉下面代码中的红色代码:    
If rdr IsNot Nothing Then
    dr("得分") += dr( XX &"是或好人") * rdr("A") + dr( XX &"否或不好人") * rdr("B")
Else
    msgbox("表名 = \'责任督学\' And 类别 = \'" & lb & "\'")
    dr("得分") += dr( XX &"是或好人")  + dr( XX &"否或不好人")
End If
dr("得分") += dr( XX &"是或好人") * rdr("A") + dr( XX &"否或不好人") * rdr("B")
就不出现:
图片点击可在新窗口打开查看此主题相关图片如下:循环.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2017/11/24 15:48:00
--  
 那就去掉。
--  作者:cqlpjks
--  发布时间:2017/11/24 15:49:00
--  
谢谢!