以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  datatables().loadfilter 能用IN运算符吗  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133569)

--  作者:mxl810823
--  发布时间:2019/4/16 19:00:00
--  datatables().loadfilter 能用IN运算符吗
DataTables("任务").Loadfilter = "[项目型号] in (" & x & ")"
DataTables("任务").Load()
这个地方能用 IN 运算符吗
为什么会出现语法错误,怎么正确编码

--  作者:有点蓝
--  发布时间:2019/4/16 20:17:00
--  
x里面是什么内容?

可以用的,生成类似以下的格式即可
DataTables("任务").Loadfilter = "[项目型号] in (\'123\',\'abc\',\'aaa\')"

--  作者:mxl810823
--  发布时间:2019/4/16 22:08:00
--  
x是一个长字符串,里面的各元素用“,”相隔,
 = "[项目型号] in (\'123\',\'abc\',\'aaa\')"  怎么你这里的元素还要用单引号括起来的??
Dim ids As String
If
key = "全部" Then
    Tables(
"A").Filter = ""
Else
    For Each
nd As WinForm.TreeNode In trv.AllNodes
        Dim
pd As WinForm.TreeNode = nd
        Do
            If
pd.Name = key Then
                If
ids > "" Then
                   
ids= ids &  ","
                End If
               
ids = ids & "\'" & nd.name & "\'"
                Exit Do
            Else
               
pd = pd.ParentNode
                If
pd Is Nothing Then
                    Exit Do
                End If
            End If
        Loop
    Next
   
Tables("表A").Filter = "键 In (" & ids & ")"
End If
这是在帮助文件里的一段,这里没用单引号,也没消除ids最后一个逗号

--  作者:有点蓝
--  发布时间:2019/4/16 22:21:00
--  
表达式里的字符串都需要使用单引号引起来,如果是数值型的就不需要


DataTables("任务").Loadfilter = "[项目型号] in (\'" & x.replace(",","\',\'") & "\')"

--  作者:mxl810823
--  发布时间:2019/4/17 0:10:00
--  
是的,搞定了,谢谢,冲凉,准备睡觉去了
长字符串里的各字符元素要用“’”单引号括起来,
看来是没有深刻领会帮助文件啊