Foxtable(狐表)用户栏目专家坐堂 → 如何做一个多表通用筛选查询呢?根据不用的表名,自动匹配对应的表字段去进行模糊字符查询!


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

主题:如何做一个多表通用筛选查询呢?根据不用的表名,自动匹配对应的表字段去进行模糊字符查询!

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
如何做一个多表通用筛选查询呢?根据不用的表名,自动匹配对应的表字段去进行模糊字符查询!  发帖心情 Post By:2019/4/23 11:51:00 [只看该作者]

如何做一个多表通用筛选查询呢?
根据不用的表名,自动匹配对应的表字段去进行模糊字符查询!
【下面红色部分代码怎么完善呢?】


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


选择表组合框enter事件代码

Dim cmb As WinForm.ComboBox
cmb = Forms("通用查询").Controls("选择表")
cmb.ComboList = DataTables("表名").sqlGetComboListString("表名")

选择表组合框值改变后代码

Dim tb1 As WinForm.Table = e.Form.Controls("Table1")
Dim c1 As WinForm.ComboBox = e.Form.Controls("选择表")
Dim cmd1 As New SQLCommand
Dim dt1 As DataTable
cmd1.ConnectionName = _data
If c1.value="参数表" Then
    cmd1.CommandText = "S ELECT * From {" & c1.Value & "} where 使用单位= '" & _usergroup & "'"
Else  If c1.value="法律法规" Or c1.value="行政区域" Or c1.value="列项设置" Or c1.value="信息模板" Then
    cmd1.CommandText = "S ELECT * From {" & c1.Value & "}"
Else If c1.value="职务" Or c1.value="人员关联表" Or c1.value="告知内容" Or c1.value="案件基本信息" Then
    cmd1.CommandText = "S ELECT * From {" & c1.Value & "} where 操作单位= '" & _usergroup & "'"
Else If c1.value="systemuser" Or c1.value="干警信息" Then
    cmd1.CommandText = "S ELECT * From {" & c1.Value & "} where 所在单位= '" & _usergroup & "'"
End If
dt1 = cmd1.ExecuteReader()
tb1.Table.DataSource  =dt1


筛选按钮代码:
Dim c1 As WinForm.ComboBox = e.Form.Controls("选择表")
Dim Filter As String
With e.Form.Controls("输入内容")
    If .Value IsNot Nothing Then
        Filter = "涉嫌案由 Like '%" & .Value  & "%' or 嫌疑人姓名 Like '%" & .Value  & "%' or 承办人 Like '%" & .Value  & "%' or 部门受案号 Like '%" & .Value  & "%'" 
    End If
End With
If Filter > "" Then
    Tables("通用查询_table1").Filter = Filter
End If

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


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

参考

 

Dim filter As String = "1=2"
For Each c As Col In Tables("表A").Cols
    filter &= " or convert(" & c.name & ",'System.String') like '%" & 123 & "%'"
Next
msgbox(filter)


 回到顶部