以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助:like查找错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=171099)

--  作者:cxmxjwlmq
--  发布时间:2021/8/18 10:59:00
--  求助:like查找错误

想从主表A第三列,查找并导出包涵combobox1内容的一个临时表,但导出的不是我想要的效果!

表A如下:

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

导出查询表如下图:

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

 查询命令如下:

Dim dtb As New DataTableBuilder("查询")
Dim ta2 As DataTable
 dtb.AddDef("第一列",     Gettype(String), 32)\'   \'班组型
 dtb.AddDef("第三列",   Gettype(String), 32)
 ta2 =  dtb.Build()
Dim Cols1() As String = {"第一列","第三列"}
Dim Cols2() As String = {"第一列","第三列"}
If e.Form.Controls("ComboBox1").value = ""
   For Each dr1 As DataRow In DataTables("表A").Select("")
       Dim dr2 As DataRow = DataTables("查询").AddNew()
       For i As Integer = 0 To Cols1.Length -1
           dr2(Cols2(i)) = dr1(Cols1(i))
       Next
   Next
ElseIf e.Form.Controls("ComboBox1").value <> ""
   For Each dr1 As DataRow In DataTables("表A").Select("第三列 Like \'" & e.Form.Controls("ComboBox1").value & "\' ")
       Dim dr2 As DataRow = DataTables("查询").AddNew()
       For i As Integer = 0 To Cols1.Length -1
           dr2(Cols2(i)) = dr1(Cols1(i))
       Next
   Next
End If
Tables("查询").Sort = "第一列"  \'排序

Dim sl As Integer = DataTables("表A").Compute("Count(第一列)","第三列 like \'" & e.Form.controls("ComboBox1").text & " \' ")
e.Form.controls("TextBox1").text = sl

 

请各位老师费心!

谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

[此贴子已经被作者于2021/8/18 11:01:59编辑过]

--  作者:有点蓝
--  发布时间:2021/8/18 11:07:00
--  
参考:http://www.foxtable.com/webhelp/topics/0102.htm

Like 运算符用于比较字符串,在 Like 比较中,* 和 % 作为通配符,两者可以互换,表示任意个数的字符,通配符只能在开头或者结尾出现。例如:

[姓名] Like \'%赫%\'

[姓名] Like \'赫%\'

[姓名] Like \'%赫\'

分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫”

在字符串的中间不允许使用通配符。例如,不允许 \'赫*丰\',也不允许 \'赫%丰\'。

由于* 和 % 默认作为通配符,如果要将其作为比较内容的一部分,必须用方括号括起来,例如:

[型号] Like \'A[*]%\'

表示型号以“A*”开头。

在 Like 运算符之前,可以加上Not关键词,表示不类似的意思,例如:

[姓名] Not Like \'李%\'

表示姓名不是以“李”开头,也就是不是姓李的。