Foxtable(狐表)用户栏目专家坐堂 → 如何让Syscmd.Filter.Contains()和Syscmd.Filter.Between()合并成一个?


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

主题:如何让Syscmd.Filter.Contains()和Syscmd.Filter.Between()合并成一个?

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


加好友 发短信
等级:五尾狐 帖子:1065 积分:7055 威望:0 精华:0 注册:2020/11/4 22:15:00
如何让Syscmd.Filter.Contains()和Syscmd.Filter.Between()合并成一个?  发帖心情 Post By:2021/4/22 16:00:00 [只看该作者]

如何让Syscmd.Filter.Contains()和Syscmd.Filter.Between()合并成一个?

主要是这个“Syscmd.Filter.Contains()”其完整代码是如何实现?

设计一个下图所示的筛选窗口:

图片点击可在新窗口打开查看

重要提示:用于输入查询内容的各输入框,切不可绑定到任何列,这是初学者很容易犯的一个错误。

设计步骤

1、插入一个组合框,改名为“cmbProduct”,列表项目设为“PD01|PD02|PD03|PD04|PD05”,用于输入要筛选的产品。
2、插入一个组合框,改名为“cmbCustomer”,列表项目设为“CS01|CS02|CS03|CS04|CS05”,用于输入要筛选的客户。
3、插入一个组合框,改名为“cmbEmployee”,列表项目设为“EP01|EP02|EP03|EP04|EP05”,用于输入要筛选的雇员。
4、插入一个日期输入框,改为名“StartDate”,用于输入开始日期。
5、插入一个日期输入框,改为名“EndDate”,用于输入结束日期。
6、插入三个单选框,名称分别设为"rdoAll"、"rdoYifu"、"rdoWeifu",标题分别设为"全部"、"已付"、"未付"。
7、插入三个按钮,标题和Click事件代码按下表所示设置。

标题Click事件代码
清除条件e.Form.Controls("cmbProduct").Value = Nothing
e.Form.Controls(
"cmbCustomer").Value = Nothing
e.Form.Controls(
"cmbEmployee").Value = Nothing
e.Form.Controls(
"StartDate").Value = Nothing
e.Form.Controls(
"EndDate").Value = Nothing
e.Form.Controls("rdoAll").Checked = True
撤销筛选Tables("订单").ApplyFilter = False
开始筛选

Dim Filter As String
With
 e.Form.Controls("cmbProduct")
    
If .Value IsNot Nothing Then
        Filter = 
"产品 = '" & .Value & "'"
    
End If
End
 With
With
 e.Form.Controls("cmbCustomer")
    
If .Value IsNot Nothing Then
        
If Filter > "" Then
            Filter = Filter & 
" And "
        
End If
        Filter = Filter & 
"客户 = '" & .Value & "'"
    
End If
End
 With
With
 e.Form.Controls("cmbEmployee")
    
If .Value IsNot Nothing Then
        
If Filter >"" Then
            Filter = Filter & 
" And "
        
End If
        Filter = Filter & 
"雇员 = '" & .Value & "'"
    
End If
End
 With
With
 e.Form.Controls("StartDate")
    
If .Value IsNot Nothing Then
        
If Filter >"" Then
            Filter = Filter & 
" And "
        
End If
        Filter = Filter & 
"日期 >= #" & .Value & "#"
    
End If
End
 With
With
 e.Form.Controls("EndDate")
    
If .Value IsNot Nothing Then
        
If Filter >"" Then
            Filter = Filter & 
" And "
        
End If
        Filter = Filter & 
"日期 <= #" & .Value & "#"
    
End If
End
 With
If
 e.Form.Controls("rdoYifu").Checked = True 如果付款状态选择了"已付"
    
If Filter >"" Then
        Filter = Filter & 
" And "
    
End If
    Filter = Filter & 
"已付款 = True"
End
 If
If 
e.Form.Controls("rdoWeifu").Checked = True ' 如果付款状态选择了"未付"
    If 
Filter >"" Then
        
Filter = Filter & " And "
    
End If
    
Filter = Filter & "已付款 = False Or 已付款 Is Null"
End If
If 
Filter > "" Then
    Tables(
"订单").Filter = Filter
End If




 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/22 16:04:00 [只看该作者]

包含就是like的用法:http://www.foxtable.com/webhelp/topics/0102.htm

比如:Filter = "产品 like '%" & .Value & "%'"

 回到顶部