以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多字段查询问题!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58868)

--  作者:zhupengfei
--  发布时间:2014/10/25 14:05:00
--  多字段查询问题!
Dim cx As WinForm.TextBox = e.Form.Controls("查询TextBox")
Dim flt As String
If cx.value="" Then
    MessageBox.show("查询值不能为空!")
Else
    For Each c As DataCol In DataTables("人员信息").dataCols
        If c.IsString AndAlso c.name<>"在职状态"  Then
            flt = c.Name & " like \'*" & cx.text & "*\' or "  & flt
        End If
    Next
    flt=flt & "r"
    flt = flt.Replace("or r"," and 在职状态<>\'离职\'")
    Tables("人员信息").Filter = flt
End If


我是希望多字段模糊查询,但是不包括已经离职的。这个代码哪里有问题。

--  作者:zhupengfei
--  发布时间:2014/10/25 14:10:00
--  
上述代码,运行的结果是,并没有把离职的排查
--  作者:Bin
--  发布时间:2014/10/25 14:21:00
--  
messagebox.show(flt) 把条件弹出来看看就知道了
--  作者:zhupengfei
--  发布时间:2014/10/25 14:31:00
--  
弹框的内容,部门 like \'* 张 *\' or 科室 like \'* 张 *\'  or 姓名 like \'* 张 *\' and 在职状态<>\'离职\'


逻辑上有问题吗?

--  作者:Bin
--  发布时间:2014/10/25 15:25:00
--  
错了,少了括号.条件要这样才对
(部门 like \'* 张 *\' or 科室 like \'* 张 *\'  or 姓名 like \'* 张 *\') and 在职状态<>\'离职\'