以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]prepareEdit里用In判断某列的值是否在一个范围内,出现错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41008)

--  作者:loongtai
--  发布时间:2013/10/9 10:28:00
--  [求助]prepareEdit里用In判断某列的值是否在一个范围内,出现错误
If e.IsFocusCell Then
    If e.Col.name="列3" Then
        If e.Row("列2").value In (\'A\',\'B\') Then    ‘提示此名有错误,应为语句结束
            e.Col.comlist=e.Table.Cols("列2").comlist
        End If
    End If
End If

--  作者:Bin
--  发布时间:2013/10/9 10:40:00
--  
你是希望 列2  的值只能是A 或者B吗?

If e.IsFocusCell Then
    If e.Col.name="列3" Then
        If e.Row("列2") = \'A\' orElse  e.Row("列2") =\'B\' Then    ‘提示此名有错误,应为语句结束
            e.Col.comlist=e.Table.Cols("列2").comlist
        End If
    End If
End If

--  作者:loongtai
--  发布时间:2013/10/9 10:47:00
--  
If e.Row("列2").value In (\'A\',\'B\') Then 
用这种方式判断不可行?
我觉得当判断数量较多(>3个)时,我觉得用In更简洁些。


--  作者:Bin
--  发布时间:2013/10/9 11:06:00
--  
没有这种方式哦, 如果是判断英文字母的话,可以使用正则表达式验证

例如 想判断 ABC

if messagebox.show(RegularExpressions.Regex.IsMatch(e.Row("列2"),"[A-C]{1}")) then

--  作者:ztmdnzc
--  发布时间:2013/10/12 12:48:00
--  
in 不能用在代码中是个极大的失误!
--  作者:ztmdnzc
--  发布时间:2013/10/12 12:49:00
--  

 用in和不能用in的区别:

 

If e.Row("列2").value In (\'A\',\'B\') 

 

If e.Row("列2") = \'A\' orElse  e.Row("列2") =\'B\'