以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  二次筛选求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9833)

--  作者:实话实说
--  发布时间:2011/5/10 8:25:00
--  二次筛选求助
表A窗口通过目录树进行了一次筛选,现需要在此基础上根据窗口文本框参数进行二次筛选,请帮忙写出筛选按钮的代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:二次筛选.table


--  作者:狐狸爸爸
--  发布时间:2011/5/10 8:32:00
--  
Dim Filter As String
If e.Form.Controls("TextBox1").Value > ""  Then
    Filter = "颜色 = \'" & e.Form.Controls("TextBox1").Value & "\'"
End If
If e.Form.Controls("TextBox2").Value > ""  Then
    If Filter > "" Then
        Filter = Filter & " And "
    End If
    Filter = "用户 = \'" & e.Form.Controls("TextBox2").Value & "\'"
End If
If Tables("表A").Filter > "" Then
    Filter = Filter & " And " & Tables("表A").Filter
End If
Tables("表A").Filter  = Filter

--  作者:lihe60
--  发布时间:2011/5/10 8:33:00
--  

帮助里有的。

 


--  作者:lihe60
--  发布时间:2011/5/10 8:34:00
--  
标题是“一个例子”。
--  作者:kylin
--  发布时间:2011/5/10 8:38:00
--  

每次目录树筛选后,用一个公共变量把这个筛选条件记录下来,一旦有二次筛选条件录入后,你就可以灵活随你所想了。


--  作者:lihe60
--  发布时间:2011/5/10 8:46:00
--  
生成一个临时表。想用的时候把这个临时表调出来。
--  作者:狐狸爸爸
--  发布时间:2011/5/10 8:47:00
--  
以下是引用lihe60在2011-5-10 8:46:00的发言:
生成一个临时表。想用的时候把这个临时表调出来。

 

歪主意,这届简单的问题,何须如此复杂,看二楼。


--  作者:实话实说
--  发布时间:2011/5/10 8:47:00
--  
以下是引用lihe60在2011-5-10 8:34:00的发言:
标题是“一个例子”。

那是一次筛选,我要的是二次筛选。

谢狐爸


--  作者:狐狸爸爸
--  发布时间:2011/5/10 8:48:00
--  
我给你的就是二次筛选,在现有筛选的基础上再次进行。
[此贴子已经被作者于2011-5-10 8:48:04编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/10 8:52:00
--  

如下设置筛选按钮的代码,会更合理:

 

Dim Value()As String

Dim Filter As String

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

If trv.SelectedNode IsNot Nothing Then

    Value = trv.SelectedNode.FullPath.Split("\\")

    Select Case trv.SelectedNode.Level

        Case 0

            Filter ="[分类] = \'" & Value(0) & "\'"

        Case 1

            Filter ="[分类] = \'" & Value(0) & "\' And [型号] = \'" & Value(1) & "\'"

        Case 2

            Filter ="[分类] = \'" & Value(0) & "\' And [型号] = \'" & Value(1) & "\' And [规格] = \'" & Value(2) & "\'"

    End Select

End If

If e.Form.Controls("TextBox1").Value > ""  Then

    If Filter > "" Then

        Filter = Filter & " And "

    End If

    Filter = "颜色 = \'" & e.Form.Controls("TextBox1").Value & "\'"

End If

If e.Form.Controls("TextBox2").Value > ""  Then

    If Filter > "" Then

        Filter = Filter & " And "

    End If

    Filter = "用户 = \'" & e.Form.Controls("TextBox2").Value & "\'"

End If

If Tables("表A").Filter > "" Then

    Filter = Filter & " And " & Tables("表A").Filter

End If

Tables("表A").Filter  = Filter