以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  FindRow 可以多条件查找吗  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=179242)

--  作者:lianghanyu
--  发布时间:2022/8/14 10:04:00
--  FindRow 可以多条件查找吗
Dim t As String = Tables("设计任务排期表").Current("项目编号")
    Dim t1 As String = Tables("设计任务排期表").Current("当前设计师")
    Dim t2 As String = Tables("设计任务排期表").Current("设计任务")
    Syscmd.Filter.UnFilter()
    
    With Tables("设计任务排期表")
        .StopRedraw
        Dim r As Integer
        r = .FindRow("[项目编号] = \'" & t & "\' "AndAlso "[当前设计师] = \'" & t1 & "\' ") 
        If r > - 1 Then \'如果找到符合条件的行
            .Position = r \'则选择该行
        End If
        .ResumeRedraw
    End With

以上代码出错

--  作者:有点酸
--  发布时间:2022/8/14 10:34:00
--  
r = .FindRow("[项目编号] = \'" & t & "\' AndAlso [当前设计师] = \'" & t1 & "\' ") 
--  作者:lianghanyu
--  发布时间:2022/8/16 9:16:00
--  
语法错误:“AndAlso”运算符后缺少操作数。
--  作者:有点蓝
--  发布时间:2022/8/16 9:18:00
--  
r = .FindRow("[项目编号] = \'" & t & "\' And [当前设计师] = \'" & t1 & "\' ") 
--  作者:lianghanyu
--  发布时间:2022/8/16 9:22:00
--  
解决了,但是不明白 为什么换到AND就可以了。
--  作者:有点蓝
--  发布时间:2022/8/16 9:30:00
--  
andalso是代码的语法:http://www.foxtable.com/webhelp/topics/0220.htm
它们是2种不同的语法,不能混用

尽管代码也有and的用法,但是一般不建议使用。这样的话代码使用andalso,表达式使用and,就不容易搞混了