以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  菜单设计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24086)

--  作者:gzyt
--  发布时间:2012/9/29 11:22:00
--  菜单设计

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

请教老师,想在菜单设计中添加一个,具有模糊筛选功能的菜单组件,写好后不起作用,

Dim cmbmc As String
Dim cmbgg As String
Dim Filter As String
With RibbonTabs("sx").Groups("sx").Items("cmbmc")
    If cmbmc IsNot Nothing Then
        Filter = "名称 Like \'*" & .Value & "*\'"
    End If
End With
With RibbonTabs("sx").Groups("sx").Items("cmbgg")
    If cmbgg IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "规格型号 Like \'*" & .Value & "*\'"
    End If
End With
If Filter > "" Then
    CurrentTable.Filter = Filter
End If

这是我写的筛选CLick事件,不知道哪里有问题,请指点,谢谢


--  作者:lin_hailun
--  发布时间:2012/9/29 11:28:00
--  
 代码变成这样

Dim Filter As String
With RibbonTabs("sx").Groups("sx").Items("cmbmc")
    If .Text IsNot Nothing Then
        Filter = "名称 Like \'*" & .Text & "*\'"
    End If
End With
With RibbonTabs("sx").Groups("sx").Items("cmbgg")
    If .Text IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "规格型号 Like \'*" & .Text & "*\'"
    End If
End With
If Filter > "" Then
    CurrentTable.Filter = Filter
End If

--  作者:gzyt
--  发布时间:2012/9/29 16:16:00
--  
OK ,非常感谢,这样就不用每个窗口留筛选窗口了。
--  作者:gzyt
--  发布时间:2012/9/30 12:35:00
--  
在用这串代码的时候出现一个问题,就是名称或规格型号单元格里的内容不能为空,否则就会筛漏。但是在窗口的筛选里是允许其中的单元格没有内容的,如何改善呢,请老师指点,谢谢
--  作者:lin_hailun
--  发布时间:2012/10/2 20:19:00
--  
 去掉为空的判断,如下代码:

Dim cmbmc As String
Dim cmbgg As String
Dim Filter As String
With RibbonTabs("sx").Groups("sx").Items("cmbmc")
    Filter = "名称 Like \'*" & .Text & "*\'"
End With
With RibbonTabs("sx").Groups("sx").Items("cmbgg")
    If Filter > "" Then
        Filter = Filter & " And "
        Filter = Filter & "规格型号 Like \'*" & .Text & "*\'"
    End If
End With
If Filter > "" Then
    CurrentTable.Filter = Filter
End If