以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码在命令窗口好用,在代码编辑器里不好用是什么原因?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47163)

--  作者:一辈子只做一件事
--  发布时间:2014/3/5 16:33:00
--  代码在命令窗口好用,在代码编辑器里不好用是什么原因?

请教老师,我刚下载了试用版,我编的代码放在命令窗口,执行的很顺利,可是放回代码编辑器运行了50多行就自动退出,再剪下来放回命令窗口还是好用,请问是什么问题?

[此贴子已经被作者于2014-3-5 16:39:23编辑过]

--  作者:Bin
--  发布时间:2014/3/5 16:45:00
--  
错误提示什么?
--  作者:一辈子只做一件事
--  发布时间:2014/3/5 17:18:00
--  

没有错误提示,就是一下子全部退出

 


--  作者:一辈子只做一件事
--  发布时间:2014/3/5 17:19:00
--  

是不是试用版的问题,

 


--  作者:Bin
--  发布时间:2014/3/5 17:19:00
--  
你放到哪里? DataColChanged吧 死循环了.  上个例子我看看
--  作者:一辈子只做一件事
--  发布时间:2014/3/5 17:21:00
--  

就是放在DataColChanged,

 


--  作者:Bin
--  发布时间:2014/3/5 17:22:00
--  
那是因为代码死循环了,代码发上来看看.
--  作者:一辈子只做一件事
--  发布时间:2014/3/5 18:19:00
--  


 

Tables("BDS").sort = "BH" \'判断最终数字的"单"或"双"
Dim i As Integer = Tables("BDS").rows.count - 1

 

if i > = 0 and i < = 9 then   \'i是0-9时不判断
    Tables("BDS").Rows(i)("G0") = 0
end if

if i > 9 then
    If Tables("BGS").Rows(i)("G0") >= 6 Then \'判断G0列是单或双
        If Tables("BWY").Rows(i)("G0") Mod 2 = 0 Then
            If Tables("KJH").Rows(i)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G0") = 2
            Else
                Tables("BDS").Rows(i)("G0") = 1
            End If
        Else
            If Tables("KJH").Rows(i)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G0") = 1
            Else
                Tables("BDS").Rows(i)("G0") = 2
            End If
        End If
    Else
        If Tables("BWY").Rows(i)("G0") Mod 2 = 0 Then
            If Tables("KJH").Rows(i)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G0") = 1
            Else
                Tables("BDS").Rows(i)("G0") = 2
            End If
        Else
            If Tables("KJH").Rows(i)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G0") = 2
            Else
                Tables("BDS").Rows(i)("G0") = 1
            End If
        End If
    End If
end if


if i > 10 then
    If Tables("BGS").Rows(i)("G1") >= 6 Then \'判断G1列是单或双
        If Tables("BWY").Rows(i)("G1") Mod 2 = 0 Then
            If Tables("KJH").Rows(i-1)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G1") = 2
            Else
                Tables("BDS").Rows(i)("G1") = 1
            End If
        Else
            If Tables("KJH").Rows(i-1)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G1") = 1
            Else
                Tables("BDS").Rows(i)("G1") = 2
            End If
        End If
    Else
        If Tables("BWY").Rows(i)("G1") Mod 2 = 0 Then
            If Tables("KJH").Rows(i-1)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G1") = 1
            Else
                Tables("BDS").Rows(i)("G1") = 2
            End If
        Else
            If Tables("KJH").Rows(i-1)("BW") Mod 2 = 0 Then
                Tables("BDS").Rows(i)("G1") = 2
            Else
                Tables("BDS").Rows(i)("G1") = 1
            End If
        End If
    End If
end if


然后是if i >  11 求[G2]列的值

       ......

一直到if i >109 求[G100]列的值,  重复执行上面的代码,其中涉及到从三个表“KJH" "BWY" "BGS”中相应的值,最终用1和2表示单或双,并将值赋在"BDS"里,有些乱,整个代码就是上面的101次重复。

[此贴子已经被作者于2014-3-5 18:24:03编辑过]

--  作者:有点甜
--  发布时间:2014/3/5 21:52:00
--  

 呃,你写的这段代码,不应该放在datacolchanged事件里的。

 

 单独做一个按钮执行这段代码吧。