以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教满足两个条件的代码?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9053)

--  作者:yuemiao816
--  发布时间:2011/1/24 10:29:00
--  请教满足两个条件的代码?

If e.DataCol.name = "第六列" Then
Select Case e.DataRow("第六列")
Case e.DataRow("第四列") <= 3 And e.DataRow("第五列") >= 10
     e.DataRow("第六列") = "可以休假"

Case Else
            e.DataRow("第六列") = "不可以"

    End Select
End If

 

我想写一个代码,如果第四列的数字小于等于3,第五列的数字大于等于10,那么第六列就显示可以休假,否则显示不可以。我照猫画虎的编了个很白的代码,结果是一点反应没有,请各位狐朋们帮我改改啊~


--  作者:狐狸爸爸
--  发布时间:2011/1/24 10:41:00
--  

呵呵,你还没有掌握Select Case,这个语句是判断某个值,建议你回头再看一下编程基础,掌握一下常用的语法。

这个应该用If

 

If e.DataCol.name = "第六列" Then
    if  e.DataRow("第四列") <= 3 And e.DataRow("第五列") >= 10
         e.DataRow("第六列") = "可以休假"

    Else
         e.DataRow("第六列") = "不可以"

    End If

End If

[此贴子已经被作者于2011-1-24 10:41:07编辑过]

--  作者:yuemiao816
--  发布时间:2011/1/24 10:44:00
--  
谢谢!开始我也心思了半天IF,但是因为没搞清这两个的差别,所以还是用SELECT写了,难怪没反应~~图片点击可在新窗口打开查看
--  作者:yuemiao816
--  发布时间:2011/1/24 10:48:00
--  
不过我照着上面的代码写了,然后我在第四列和第五列里分别填上数字,但是没反应,我在第六列里乱写个数字什么的,第六列才根据前面四五列的条件出现文字~这是怎么回事呢?
--  作者:czy
--  发布时间:2011/1/24 10:53:00
--  

If e.DataCol.name = "第六列" Then

 

上面代码的意思是,如果变动的是第六列才运行代码


--  作者:狐狸爸爸
--  发布时间:2011/1/24 10:54:00
--  

呵呵,因为你设置的代码,只有第六列发生变化才会执行,实际上你的代码应该这样写:

 

Select Case e.DataCol.name 

    Case "第四列", "第五列"

        if  e.DataRow("第四列") <= 3 And e.DataRow("第五列") >= 10
             e.DataRow("第六列") = "可以休假"

        Else
             e.DataRow("第六列") = "不可以"

        End If

End Select


--  作者:yuemiao816
--  发布时间:2011/1/24 10:57:00
--  
哈哈~谢谢各位大侠!今天又学了不少~
--  作者:blackzhu
--  发布时间:2011/1/24 14:54:00
--  

If e.DataCol.name = "第六列" Then

 

Select Case e.DataCol.name 

    Case "第六列"

 

道理一样的.