以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]筛选代码不能正常工作  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56277)

--  作者:lijin951
--  发布时间:2014/9/2 14:22:00
--  [求助]筛选代码不能正常工作
现在我先对主表进行某个时间段的查询,并从他关联的明细表里面查询‘型号规格’,‘名称’等字段,但是需要只显示主表的列
达到的效果是,我查询某一时间段(来自主表‘时间’字段),的某一个型号规格(来自明细表‘型号规格’字段),然后结果是显示这个时间段内,含有明细表型号规格的主表信息.二者是通过单据号关联的

我的代码如下:
Dim filter As String
With e.Form.Controls("3dt1")    \'\'开始时间
    If .Value IsNot Nothing Then
        filter = "购进日期 >= #" & .value & "#"
    End If
End With

With e.Form.Controls("3dt2")        \'\'结束时间
    If .Value IsNot Nothing Then
        If filter >"" Then
            filter = filter & " and "
        End If
        filter = "购进日期 <= #" & .value & "#"
    End If
End With

If filter >"" Then
    Tables("入库主表").Filter = filter
End If

光这段时间筛选代码运行后,起不到筛选的作用,还没加其他字段的筛选,之前窗口中的表是副本表,最后一个IF判断代码是
If filter >"" Then
    Tables("单据查询_3tb1").Filter = filter     \'\'表名是3tb1
End If
我还以为是不能作用于副本表,但是不作为副本表运行也没反应呀

[此贴子已经被作者于2014-9-2 14:23:15编辑过]

--  作者:Bin
--  发布时间:2014/9/2 14:39:00
--  
请上例子.
--  作者:有点甜
--  发布时间:2014/9/2 14:40:00
--  

 这个代码,不可能无效

 

If filter >"" Then
    Tables("入库主表").Filter = filter
End If

 

 要实现什么,自己上传例子吧。


--  作者:lijin951
--  发布时间:2014/9/2 15:04:00
--  
我继续研究了一下发现还是不行,请各位大神看看
问题在 单据查询(窗口)-入库单查询-查询按钮的click事件,其中有时间的筛选和型号规格名称的筛选,我目前测试时间的筛选已经失败
最后一个筛选条件不管是
Tables("单据查询_3tb1").Filter = "购进日期 = sjsx"
还是
Tables("单据查询_3tb1").Filter = sjsx
副本表都没反应

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


[此贴子已经被作者于2014-9-2 15:04:49编辑过]

--  作者:有点甜
--  发布时间:2014/9/2 15:27:00
--  

Dim sx As String = "1=1"
Dim sjsx As String = "1=1"
With e.Form.Controls("3ssk1")
    If .Value IsNot Nothing Then
        sx &= " and 物料名称 = \'" & .Value & "\'"
    End If
End With

With e.Form.Controls("3ssk2")
    If .Value IsNot Nothing Then
        sx &= " and 型号规格 = \'" & .Value & "\'"
    End If
End With

With e.Form.Controls("3dt1")  \'\'开始时间
    If .Value IsNot Nothing Then
        sjsx &= " and 购进日期 >= #" & .Value & "#"
    End If
End With

With e.Form.Controls("3dt2")  \'\'结束时间
    If .Value IsNot Nothing Then
        sjsx &= " and 购进日期 <= #" & .Value & "#"
    End If
End With

Tables("单据查询_3tb1").Filter = sjsx
Dim str As String = DataTables("入库明细表").GetComboListString("购进单据号", sjsx).Replace("|", "\',\'")
Tables("单据查询_3tb2").Filter = sx & " and 购进单据号 in (\'" & str & "\')"


--  作者:lijin951
--  发布时间:2014/9/2 15:45:00
--  

Dim sx As String = "1=1"
Dim sjsx As String = "1=1"



Dim str As String = DataTables("入库明细表").GetComboListString("购进单据号", sjsx).Replace("|", "\',\'")
Tables("单据查询_3tb2").Filter = sx & " and 购进单据号 in (\'" & str & "\')"


请问大神这两段代码改怎么理解

--  作者:有点甜
--  发布时间:2014/9/2 15:47:00
--  

1=1没有意义,只是为了连接后面 and

 

Dim str As String = DataTables("入库明细表").GetComboListString("购进单据号", sjsx).Replace("|", "\',\'")
Tables("单据查询_3tb2").Filter = sx & " and 购进单据号 in (\'" & str & "\')"

 

 这两句代码,是为了筛选子表数据


--  作者:lijin951
--  发布时间:2014/9/2 16:14:00
--  
大神啊,经过尝试,会报错,时间筛选已经可以用了,但是加入的型号规格和名称的筛选没用
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1005.rar


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140902161321.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140902161321.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1005.rar


[此贴子已经被作者于2014-9-2 16:15:40编辑过]

--  作者:有点甜
--  发布时间:2014/9/2 16:25:00
--  
 5楼的代码,已经是最后的代码了,自己看效果。
--  作者:lijin951
--  发布时间:2014/9/2 16:26:00
--  
是呀,我就是用的5楼的代码