以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值字段的模糊查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130883)

--  作者:gudao123456
--  发布时间:2019/2/10 12:39:00
--  多值字段的模糊查询
老师新年好!对于多值字段的查询,如何通过代码设置含某个值的查询,比如字段A的中含有XXX,YYY,ZZZ中的部分或全部,如何将其中含有YYY的行选出来。谢谢

[此贴子已经被作者于2019/2/10 12:41:39编辑过]

--  作者:有点甜
--  发布时间:2019/2/10 13:46:00
--  
Tables("表A").filter = "第一列 like \'%YYY%\'"
--  作者:gudao123456
--  发布时间:2019/2/10 22:24:00
--  
谢谢!
下面问题代码的问题在哪里,提示了Like前 缺少运算符,应该如何改才正确?
Dim Cols1() As String = {"xm","sfzhm","xb","mz","xh","nj","bj","xq","zxzt","xx","xslx","zmcl","lrr","lrsj"}
Dim Cols2() As String ={"xm","sfzhm","xb","mz","xh","nj","bj","xq","zxzt","xx","xslx","zmcl","lrr","lrsj"}
Dim fil As String="like \'%YYY%\'  And sfytjmxzf=\'False\'"
For Each dr1 As DataRow In DataTables("xszxztb").Select("xsxm"=fil) 
 Dim dr2 As DataRow = DataTables("mxzfb").AddNew()
 For i As Integer = 0 To Cols1.Length -1
 dr2(Cols2(i)) = dr1(Cols1(i))
 Next
dr1("sfytjmxzf")=True
Next
其中:xsxm 为表xsxztb的一个多值字段
改成:Dim fil As String="like %YYY%  And sfytjmxzf=\'False\'"
For Each dr1 As DataRow In DataTables("xszxztb").Select(xsxm=fil) 
...
后又提示 xsxm没有定义,如果把xsxm 改成:“xsxm”,不提示错误,但没有把符合条件的记录添加到目标表

谢谢!

[此贴子已经被作者于2019/2/10 22:41:27编辑过]

--  作者:有点甜
--  发布时间:2019/2/11 9:28:00
--  
Dim Cols1() As String = {"xm","sfzhm","xb","mz","xh","nj","bj","xq","zxzt","xx","xslx","zmcl","lrr","lrsj"}
Dim Cols2() As String ={"xm","sfzhm","xb","mz","xh","nj","bj","xq","zxzt","xx","xslx","zmcl","lrr","lrsj"}
Dim fil As String=" xsxm like \'%YYY%\'  And sfytjmxzf=\'False\'"
For Each dr1 As DataRow In DataTables("xszxztb").Select(fil)
    Dim dr2 As DataRow = DataTables("mxzfb").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
    dr1("sfytjmxzf")=True
Next

--  作者:gudao123456
--  发布时间:2019/2/11 23:55:00
--  
谢谢!我执行后虽然没有提示错误,但仍然还是没有把符合条件的拷贝到目标数据表。我再检查一下看看是否有其他问题
--  作者:有点甜
--  发布时间:2019/2/12 9:03:00
--  

那你执行这个代码,看筛选到什么数据

 

Tables("xszxztb").filter = "xsxm like \'%YYY%\'  And sfytjmxzf=False"

 


--  作者:gudao123456
--  发布时间:2019/2/12 17:35:00
--  
执行上述代码,可以筛查出符合条件的行。谢谢!
--  作者:有点甜
--  发布时间:2019/2/12 17:58:00
--  
以下是引用gudao123456在2019/2/12 17:35:00的发言:
执行上述代码,可以筛查出符合条件的行。谢谢!

 

那这个代码,不应该有问题 For Each dr1 As DataRow In DataTables("xszxztb").Select(fil)


--  作者:gudao123456
--  发布时间:2019/2/12 21:23:00
--  
可以了,谢谢!
问题出在Dim fil As String=" xsxm like \'%YYY%\'  And sfytjmxzf=\'False\'" 中" xsxm like ..."前面多了个空格(我理解不应该影响啊)