Foxtable(狐表)用户栏目专家坐堂 → 多值字段的模糊查询


  共有3255人关注过本帖树形打印复制链接

主题:多值字段的模糊查询

帅哥哟,离线,有人找我吗?
gudao123456
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
多值字段的模糊查询  发帖心情 Post By:2019/2/10 12:39:00 [只看该作者]

老师新年好!对于多值字段的查询,如何通过代码设置含某个值的查询,比如字段A的中含有XXX,YYY,ZZZ中的部分或全部,如何将其中含有YYY的行选出来。谢谢

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/10 13:46:00 [只看该作者]

Tables("表A").filter = "第一列 like '%YYY%'"

 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2019/2/11 23:55:00 [只看该作者]

谢谢!我执行后虽然没有提示错误,但仍然还是没有把符合条件的拷贝到目标数据表。我再检查一下看看是否有其他问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/12 9:03:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2019/2/12 17:35:00 [只看该作者]

执行上述代码,可以筛查出符合条件的行。谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/12 17:58:00 [只看该作者]

以下是引用gudao123456在2019/2/12 17:35:00的发言:
执行上述代码,可以筛查出符合条件的行。谢谢!

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2019/2/12 21:23:00 [只看该作者]

可以了,谢谢!
问题出在Dim fil As String=" xsxm like '%YYY%'  And sfytjmxzf='False'" 中" xsxm like ..."前面多了个空格(我理解不应该影响啊)

 回到顶部