Foxtable(狐表)用户栏目专家坐堂 → [求助]关于筛选的问题! A表筛选根据B表来筛选的~~~~【例子已上传,商业版的】


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

主题:[求助]关于筛选的问题! A表筛选根据B表来筛选的~~~~【例子已上传,商业版的】

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
[求助]关于筛选的问题! A表筛选根据B表来筛选的~~~~【例子已上传,商业版的】  发帖心情 Post By:2012/5/14 22:48:00 [只看该作者]

A表有一列是工号列  唯一的  同一工号只有1行记录

 

B表与A表可以说是关联的  B表也有工号列 但是同一个工号可以有多行记录

 

现在 A表目录树 双击事件有段代码

 

Dim Value() As String
Value = e.Node.FullPath.Split("\")
Select Case e.Node.Level
    Case 1

If e.node.text <> "回聘"
                Tables("人事档案_人事档案Table1").Filter
  = "???"

 

 

???的筛选条件其实为  在B表中筛选出有重复的工号  然后在A表中筛选出对应工号的记录 Tables("人事档案_人事档案Table1")即为A表

 

请问该怎么办?  思路是什么?

[此贴子已经被作者于2012-5-15 10:14:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/5/15 7:54:00 [只看该作者]

发文件,可能无需筛选,既然A、B表关联,利用代码选择A表符合条件的行,B表显示的就是相同工号的行(子表关联行)

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/5/15 8:25:00 [只看该作者]

Dim r As Row=Tables("表A").Current

Dim Value() As String
Value = e.Node.FullPath.Split("\")
Select Case e.Node.Level
    Case 1

If e.node.text <> "回聘" Then
    Tables("表B").Filter
  = "工号 ='" & r("工号") & "'"

End if

 

这样试试


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/5/15 8:53:00 [只看该作者]

按理表A无需筛选:

Select Case e.Node.Level
    Case 1

       If e.node.text <> "回聘" Then
           Tables("表A").Position  = Tables("表A").FindRow("[工号] = '" & e.node.text  &"'")

       End if

End Select

 

如果表A确需筛选:

Select Case e.Node.Level
    Case 1

        If e.node.text <> "回聘" Then
            Tables("表A").Filter= "[工号] = '" & e.node.text &"'"

            Tables("表A").Position = 0

        End if

End Select

[此贴子已经被作者于2012-5-15 8:54:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/5/15 10:14:00 [只看该作者]

 


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

以此项目为例   窗口里为A表  点击目录树中的【筛选】后  A筛选出B表中 工号有重复的行   B表中 工号1,8 有重复

 

 

A表中就筛选出1,8工号的记录

 

 

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

[此贴子已经被作者于2012-5-15 10:15:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/5/15 10:44:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/5/15 10:53:00 [只看该作者]

程版麻烦了

 

但是有些出入  我意思是目录树就一个【筛选】节点  点击后 A表就筛选出1,8    2行   

 

筛选条件是根据B表有重复的工号1,8


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/5/15 11:26:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/5/15 12:31:00 [只看该作者]

去掉判断好一点,这样的话去掉勾的时候也重新筛选:

 

Dim filter As String
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked = True
        Filter =Filter & "|" & nd.text
    End If
Next
Filter = "*" &Filter.Replace("|","' or [工号] = '") & "'"
Filter =Filter.Replace("*' or","")
Tables("表A").Filter=Filter
Tables("表B").Filter=Filter

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/5/15 12:35:00 [只看该作者]

程版,你没有理解他的说法,我已经帮他搞定了


 回到顶部
总数 13 1 2 下一页