以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  模糊筛选下拉窗口显示问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8336)

--  作者:老有所乐
--  发布时间:2010/10/8 17:24:00
--  模糊筛选下拉窗口显示问题

1,下拉窗口显示的问题。在表B窗口打开表A,在“模糊筛选关键字”框中输入要筛选的字后,再点击窗口表A的第二列下拉窗口,下拉窗口所显示的信息不是所筛选的对应行第四列的信息。应该如何设置。

2,表B窗口TextBox1(即“模糊筛选关键字”框)代码能否简化。怎样简化。

请老师指教,谢谢!

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


--  作者:czy
--  发布时间:2010/10/8 19:19:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


--  作者:老有所乐
--  发布时间:2010/10/8 23:16:00
--  

谢谢C版!

第一个问题解决的非常好。

第二个问题,文本框的代码还可以简化吗。


--  作者:czy
--  发布时间:2010/10/8 23:42:00
--  

可以的。

 

Dim Filter As String
If Vars("Name") = "表A" Then   \'如果组合框显示为"表A"
    Filter = "[第一列] Like \'*" & e.Sender.Text & "*\' or [第二列] Like \'*" & e.Sender.Text & "*\'or[第四列] Like \'*" & e.Sender.Text & "*\'"
End If
If Vars("Name") = "表B" Then   \'如果组合框显示为"表B"
    Filter = "[第一列] Like \'*" & e.Sender.Text & "*\' or [第二列] Like \'*" & e.Sender.Text & "*\'or[项目] Like \'*" & e.Sender.Text & "*\'"
End If
If Vars("Name") = "表C" Then   \'如果组合框显示为"表C"
    Filter = "[第一列] Like \'*" & e.Sender.Text & "*\' or [第二列] Like \'*" & e.Sender.Text & "*\'or[摘要] Like \'*" & e.Sender.Text & "*\'"
End If
Tables("窗口5_Table1").Filter = Filter
Tables(Vars("Name")).Filter = Filter
Tables(Vars("Name")).Position = Tables("窗口5_Table1").Position


--  作者:老有所乐
--  发布时间:2010/10/9 0:01:00
--  

谢谢C版!

这样一个表还是要写一段代码。我是想三个表要查找的前两个字段都相同,第三个字段不同,那个不同的字段能否用变了代替。

C版,算了还是明天来吧,今天很晚了,注意休息。

[此贴子已经被作者于2010-10-9 0:03:09编辑过]

--  作者:czy
--  发布时间:2010/10/9 9:38:00
--  

增加一个字符型全局变量,如CName

ComboBox1的SelectedIndexChanged控件事件:

 

Vars("Name") = e.Sender.Value
Select Case e.Sender.Value
    Case "表A"
        Vars("CName") ="第四列"
    Case "表B"
        Vars("CName") = "项目"
    Case "表C"
        Vars("CName") = "摘要"
    Case Else
        Vars("CName") = ""
End Select

 

然后将4楼的代码改成:

 

If Vars("CName") <> "" Then
    Dim Filter As String = "[第一列] Like \'*" & e.Sender.Text & "*\' or [第二列] Like \'*" & e.Sender.Text & "*\'or " & Vars("CName") & " Like \'*" & e.Sender.Text & "*\'"
    Tables("窗口5_Table1").Filter = Filter
    Tables(Vars("Name")).Filter = Filter
    Tables(Vars("Name")).Position = Tables("窗口5_Table1").Position
End If


--  作者:老有所乐
--  发布时间:2010/10/9 14:59:00
--  
好的,谢谢C版!