以文本方式查看主题

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

--  作者:李孝春
--  发布时间:2020/4/15 17:10:00
--  like多值模糊查询


If e.DataCol.Name = "发送对象" Then
    Dim dr As DataRow
    dr = DataTables("干警信息").SQLFind("身份属性 like \'%" & e.DataRow("发送对象") & "%\' ")
    
    MessageBox.Show(("身份属性 like \'%" & e.DataRow("发送对象") & "%\' "))
    If dr Is Nothing Then
        MessageBox.Show("当前发送对象,没有对应身份属性的人员姓名,不生成内容告知表!请核查!","提醒")
    End If
End If

当发送对象选择代表  委员多值后
"身份属性 like \'%" & e.DataRow("发送对象") & "%\' "
弹出的值是   身份属性 like ‘%代表,委员%’

但是人员信息表中身份属性值是人大代表或政协委员。
上述代码是不是写错了

想实现当发送对象选择值中含有代表或委员字样的 就对应在人员信息表中去把符合的数据全部找出来

实现类似模糊查询
[此贴子已经被作者于2020/4/15 17:13:01编辑过]

--  作者:有点蓝
--  发布时间:2020/4/15 17:28:00
--  
dim s as string = "1=2 "
for each s1 as string in e.DataRow("发送对象").split(",")
s = s & " or 身份属性 like ‘%" & s1 "%\' "
next
msgbox(s)
dr = DataTables("干警信息").SQLFind(s)

--  作者:李孝春
--  发布时间:2020/4/16 11:25:00
--  回复:(有点蓝)dim s as string = "1=2 "for each s...
如果我还需要加一个条件  就是所在单位  下面的写法貌似不对  提示错误
DataTables("干警信息").SQLFind(s And "所在单位= \'" & _usergroup & "\' ")
--  作者:有点蓝
--  发布时间:2020/4/16 11:35:00
--  
DataTables("干警信息").SQLFind("(" & s & ") And 所在单位= \'" & _usergroup & "\' ")
--  作者:李孝春
--  发布时间:2020/4/16 14:36:00
--  回复:(有点蓝)DataTables("干警信息").SQLFind("("...
谢谢有点蓝老师   
如果我进一步采用sql语句的写法  代码运行后提示
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:加载[干警信息]失败!
详细错误信息:
\' \' 附近有语法错误。
字符串 \' \' 后的引号不完整。

代码如下:
Dim cmb As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.View = ViewMode.SmallIcon
lvw.CheckBoxes = True
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear()

Dim s As String = "1=2 "
For Each s1 As String In cmb.text.split(",")
    s = s & " or 身份属性 like \'%" & s1 & "%\' "
Next
msgbox(s)

Dim sql As String
sql = "Sele ct * From {干警信息} where 所在单位=\'"& _UserGroup & " And " & s & ""
\'MessageBox.Show(sql)
\'MessageBox.Show(_UserGroup)
DataTables("干警信息").SQ LLoad(sql)

For Each dr As DataRow In DataTables("干警信息").DataRows \'从数据表中提取数据
    Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    r.Text = dr("姓名") \'指定行的标题
    r.Name  = r.Text \'将行的名称设置为标题,也就是国家
Next
lvw.ResumeRedraw() \'恢复绘制


如果红色部分更改为
DataTables("干警信息").SQLLoad("(" & s & ") And 所在单位= \'" & _usergroup & "\' ")
运行会提示出错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:加载[干警信息]失败!
详细错误信息:
\'1\' 附近有语法错误。
[此贴子已经被作者于2020/4/16 14:40:55编辑过]

--  作者:有点蓝
--  发布时间:2020/4/16 15:50:00
--  
msgbox(s)弹出什么内容?
--  作者:李孝春
--  发布时间:2020/4/16 16:00:00
--  回复:(有点蓝)msgbox(s)弹出什么内容?
如图 

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看


运行会提示出错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.19.19
错误所在事件:加载[干警信息]失败!
详细错误信息:
\'1\' 附近有语法错误。
[此贴子已经被作者于2020/4/16 16:00:20编辑过]

--  作者:有点蓝
--  发布时间:2020/4/16 16:27:00
--  
sqlload要写完整的sql:http://www.foxtable.com/webhelp/topics/2721.htm,不经常用都忘了

或者
DataTables("干警信息").Loadfilter = "(" & s & ") And 所在单位= \'" & _usergroup & "\' "
DataTables("干警信息").Load

--  作者:李孝春
--  发布时间:2020/4/16 16:59:00
--  回复:(有点蓝)sqlload要写完整的sql:http://www.f...
有点蓝 老师  是这样么?这样写 错误提示  和楼上一样     

Dim s As String = "1=2 "
For Each s1 As String In cmb.text.split(",")
    s = s & " or 身份属性 like \'%" & s1 & "%\' "
Next
\'msgbox(s)
Dim sql As String
sql = "Sel ect * From {干警信息} where 所在单位=\'"& _UserGroup & "\'"
sql= sql & s
DataTables("干警信息").SQL Load(sql)
[此贴子已经被作者于2020/4/16 17:02:40编辑过]

--  作者:有点蓝
--  发布时间:2020/4/16 17:13:00
--  
sql = "Select * From {干警信息} where (" & s & ") And 所在单位= \'" & _usergroup & "\' "
DataTables("干警信息").SQL Load(sql)