以文本方式查看主题

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

--  作者:ntqhj
--  发布时间:2020/6/27 14:45:00
--  [求助]筛选
分区面板,筛选等按钮及控件在分区1里,有一个类型是DateTimePicker控件(“列名:承运日期”)需要筛选,这个筛选代码如何写?
这里:表名:承运人明细表,在分区二,列名“承运日期”
目前筛选按钮使用的代码(提示出错信息:未找到列 [承运日期]。):
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

--  作者:有点蓝
--  发布时间:2020/6/27 14:49:00
--  
代码没有问题。确定有这个列名,并且有加载这个列
--  作者:ntqhj
--  发布时间:2020/6/28 0:21:00
--  
目前自己写代码的能力很菜,基本都是套用的。
列名有,点筛选按钮提示出错信息“未找到列 [承运日期]”,关闭出错提示信息后,可以得到筛选结果。至于是否有“加载这个列”,我判断不了。感觉在该筛选代码上,需要加上指定分区2绑定表的代码,才能对该绑定表承运日期的字段进行筛选。想法是否对,望老师指点、完善。

--  作者:有点蓝
--  发布时间:2020/6/28 9:09:00
--  
请上传实例测试
--  作者:ntqhj
--  发布时间:2020/6/28 23:30:00
--  
实例
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:aaa.zip


--  作者:有点蓝
--  发布时间:2020/6/29 8:36:00
--  
2个表都使用了同样的条件,但是2个表的列是不一样的。应该分开设置条件,比如:

Dim Filter As String
With e.Form.Controls("收款状态")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "收款状态 = \'" & .Value & "\'"
    End If
End With
……其它和承运人明细表有关的条件
If Filter > "" Then
    Tables("承运人明细表").Filter = Filter
End If

Dim Filter2 As String
With e.Form.Controls("收款标识")
    If .Value IsNot Nothing Then
        If Filter2 > "" Then
            Filter2 = Filter & " And "
        End If
        Filter2 = Filter2 & "收款标识 = \'" & .Value & "\'"
    End If
End With
……其它和接单明细表有关的条件
If Filter2 > "" Then
    Tables("接单明细表").Filter = Filter2
End If

--  作者:ntqhj
--  发布时间:2020/7/1 13:44:00
--  
窗口1用的页面集合TabControl,绑定表名称:接单明细表,筛选按钮的代码应该如何修改?
Dim Filter As String
With e.Form.Controls("收款状态")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "收款状态 = \'" & .Value & "\'"
    End If
End With

--  作者:有点蓝
--  发布时间:2020/7/1 13:53:00
--  
如果窗口表是副本,参考:http://www.foxtable.com/webhelp/topics/1906.htm
--  作者:ntqhj
--  发布时间:2020/7/1 14:09:00
--  
水平不够能老师帮忙修改下。
--  作者:有点蓝
--  发布时间:2020/7/1 14:21:00
--  

既然副本Table是独立的,所以它必须有自己的名称,这样才能和原Table区分开来,其名称为 :

窗口名称_控件名称

假定副本Table控件的名称为“Table1”,所在窗口的名称为“窗口1”,那么不管其绑定到哪一个表,它的名称都是“窗口1_Table1”,我们可以通过这个名称来引用它 ,例如:

Tables("窗口1_Table1").Filter = "产品 = \'PD01\'"


如果还是看不懂,请上传实例