Foxtable(狐表)用户栏目专家坐堂 → [求助]谁可以教下我做个查询的窗口


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

主题:[求助]谁可以教下我做个查询的窗口

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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2014/4/8 22:21:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多列查询1.rar


'''
'================================================
'多列查询
'在主表中,按选定的字段及给定的关键字查询!
'
'================================================
Dim lsb As String= Args(0) '查询条件(要查询的字段)
Dim txt As String= Args(1) '查询的关键词
Dim pd As Integer=args(2)  '匹配位置
Dim sql As String

If txt=""  Then
    sql =""
ElseIf txt > "" Then
    Select Case pd
        Case 0 '任意位置匹配
            txt = "'%" & txt & "%'"
        Case 1 '开始位置匹配
            txt = "'" & txt & "%'"
        Case 2 '结束位置匹配
            txt = "'%" & txt & "'"           
        Case 3 '完全匹配
            txt = "'" & txt & "'"
    End Select
    
    ' txt = "'%" & txt & "%'"
    If lsb="" Then '如果没选定列,按所有string类型列查询
        For Each dc As DataCol In DataTables(MainTable.DataTable.Name).DataCols
            If dc.IsString Then
                'sql=sql & dc.name & " Like " & txt & " or "
                Select Case pd
                    Case 0,1,2 '任意位置匹配
                        sql=sql & dc.name & " Like " & txt & " or "
                    Case 3 '完全匹配
                        sql=sql & dc.name & " = " & txt & " or "
                End Select
            End If
        Next
    ElseIf lsb > "" Then '否则按选定列查询
        Dim Values() As String
        Values = lsb.split(",")
        For Each lstr As String In values
            ' sql=sql & lstr & " Like " & txt & " or "
            Select Case pd
                Case 0,1,2 '任意位置匹配
                    sql=sql & lstr & " Like " & txt & " or "
                Case 3 '完全匹配
                    sql=sql & lstr & " = " & txt & " or "
            End Select
        Next
    End If
    sql=sql.Trim(" ","r","o")
End If
Functions.Execute("动态加载",MainTable.name,sql)
lsb=""
txt=""

'''
'============================================================
'
'动态加载
'
'============================================================
Dim tbName As String= Args(0)
Dim sql As String= Args(1)

If  sql = "" Then  '查询条件为空时
    If MessageBox.Show("查询条件为空时,默认加载所有信息!" & vbcrlf & "你确定吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)=DialogResult.Yes Then
    Else
        Exit Function
    End If
End If
With DataTables(tbName)
    .LoadFilter=sql
    '.LoadTop =20
    '.LoadPage = 0
    .Load()
End With
Return DataTables(tbName).DataRows.Count

这样的吗?系统本身带的有啊,再加一个日期控件改造一下,和狐爸给的帮助的差不多的

[此贴子已经被作者于2014-4-8 22:34:05编辑过]

 回到顶部