以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口只有一个表可以帅选的,现在增加了一个表(一个窗口2个表了),点击帅选出现了提示  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50472)

--  作者:xianxin2010
--  发布时间:2014/5/7 11:35:00
--  窗口只有一个表可以帅选的,现在增加了一个表(一个窗口2个表了),点击帅选出现了提示

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模拟高级筛选_单选框.table

 

窗口只有一个表A是可以帅选的,现在在窗口增加了一个表B(一个窗口2个表了),点击帅选出现了提示

 

"未找到类型“Table”的公共成员“Text”。"


表B没有作用,只要可以存在在窗口,原有能筛选就行,

[此贴子已经被作者于2014-5-7 11:37:17编辑过]

--  作者:Bin
--  发布时间:2014/5/7 11:36:00
--  
Table 是没有Text  这个成员的.
--  作者:lsy
--  发布时间:2014/5/7 11:39:00
--  
Dim flt As String
For Each c As Col In Tables("表A").Cols
    For Each ctl As WinForm.Control In e.Form.Controls
        If ctl.Gettype.name <> "Table" Then
            If e.Form.Controls(ctl.Name).Text > "" Then
                If ctl.Gettype.Name = "RadioButton" Then
                    If ctl.Name.Split("_")(0) = c.Name AndAlso e.Form.Controls(ctl.Name).Checked Then
                        flt + = c.Name & " = \'" & e.Form.Controls(ctl.Name).Text & "\' And "
                    End If
                Else
                    If ctl.Name.Contains("0") AndAlso ctl.Name.Split("_")(0) = c.Name Then
                        flt + = c.Name & " = \'" & e.Form.Controls(ctl.Name).Text & "\' And "
                    ElseIf ctl.Name.Contains("1") AndAlso ctl.Name.Split("_")(0) = c.Name Then
                        flt + = c.Name & " >= " & e.Form.Controls(ctl.Name).Text & " And "
                    ElseIf ctl.Name.Contains("2") AndAlso ctl.Name.Split("_")(0) = c.Name Then
                        flt + = c.Name & " <= " & e.Form.Controls(ctl.Name).Text & " And "
                    ElseIf ctl.Name = c.Name AndAlso c.Name = "字符模糊搜索" Then
                        flt + = c.Name & " Like \'%" & e.Form.Controls(ctl.Name).Text & "%\' And "
                    End If
                End If
            End If
        End If
    Next
Next
If flt > "" Then
    flt = flt.SubString(0,flt.Length - 5)
End If
Tables("表A").Filter = flt

--  作者:有点甜
--  发布时间:2014/5/7 11:40:00
--  

 改一下这句代码

 

If ctl.name <> "Table1" AndAlso ctl.Name <> "Table2" Then


--  作者:xianxin2010
--  发布时间:2014/5/7 11:40:00
--  
以下是引用Bin在2014-5-7 11:36:00的发言:
Table 是没有Text  这个成员的.


只要能筛选就行,表B要在窗口内存在,


现在情况是删掉窗口中的表B就可以帅选了,表B放上去就出现提示了,,,

--  作者:xianxin2010
--  发布时间:2014/5/7 11:40:00
--  
模拟高级筛选_单选框.table,是lsy帮忙做的,谢谢,

--  作者:有点甜
--  发布时间:2014/5/7 11:41:00
--  

 再有就是,对于筛选的字段,处理方法如下。

 

 1、把筛选的控件都放在一个容器里面,然后遍历容器;

 

 2、或者,筛选的控件,命名有一个规范,比如前面都是 filter_xxxx;这样就可以判断了。


--  作者:Bin
--  发布时间:2014/5/7 11:46:00
--  
你遍历控件,没有排除Table2 所以报错  排除一下即可
--  作者:xianxin2010
--  发布时间:2014/5/7 12:07:00
--  
lsy有点甜Bin  感谢大家。