Foxtable(狐表)用户栏目专家坐堂 → 一个晚上学一条公式


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

主题:一个晚上学一条公式

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
一个晚上学一条公式  发帖心情 Post By:2013/5/12 4:54:00 [只看该作者]

如图,愿望很简单。

就是点击表a某列的时候,自动把 表b中第一列含有表a当前行(第一行)的行筛出来,思路知道,就是看下面公式怎么错了?
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

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


    Tables("表b").Filter = "第一列 In  '(" &  e.Table.Current("第一列")  & ")'"


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/5/12 9:19:00 [只看该作者]

Tables("表b").Filter = ""
Dim flt As String
Dim str() As String
For Each r As Row In Tables("表b").Rows
    str = r("第一列").Split(",")   
    For Each s As String In str       
        If e.Table.Current("第一列") = s Then
            flt = flt & "'" & r("第一列") & "'" & ","           
        End If
    Next
Next

If flt > "" Then
   flt = "第一列 In (" & flt.TrimEnd(",") & ")"
   Tables("表b").Filter = flt

Else

   Tables("表b").Filter = (1 = 2)

End If

[此贴子已经被作者于2013-5-12 10:11:10编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2013/5/12 12:37:00 [只看该作者]

一下子不理解,收藏学习先。谢谢!!

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/5/12 13:17:00 [只看该作者]

以下是引用lsy在2013-5-12 9:19:00的发言:

if e.table.current.isnull("第一列") then

Tables("表b").Filter = " 第一列 is null"

then

Tables("表b").Filter = " 第一列 like  *" &  e.table.current("第一列")& "*"

end if


 

[此贴子已经被作者于2013-5-12 10:11:10编辑过]

[此贴子已经被作者于2013-5-12 13:26:08编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/5/12 19:22:00 [只看该作者]

以下是引用jspta在2013-5-12 13:17:00的发言:

[此贴子已经被作者于2013-5-12 13:26:08编辑过]

Like在这里,会筛选出你不想要的记录。


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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2013/5/12 20:21:00 [只看该作者]

 like,是把包含的都列出来了

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/5/12 20:30:00 [只看该作者]

以下是引用everybody在2013-5-12 20:21:00的发言:
 like,是把包含的都列出来了

没考虑周全,加上分隔符“,”,应该改成

 

if e.table.current.isnull("第一列") then

Tables("表b").Filter = " 第一列 is null"

else

Tables("表b").Filter = " 第一列 like  *," &  e.table.current("第一列")& ",*"

end if


不过你这样设计表格式还不够合理的,呵呵


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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2013/5/12 20:37:00 [只看该作者]

没办法,我翻译一下给你听,表一,实际是单位库;表二,是人员库。一个人有可能在两个或者三个单位里面有兼职。你说怎么办?

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/5/12 23:14:00 [只看该作者]

以下是引用everybody在2013-5-12 20:37:00的发言:
没办法,我翻译一下给你听,表一,实际是单位库;表二,是人员库。一个人有可能在两个或者三个单位里面有兼职。你说怎么办?

一行一条记录...很简单的一对多关系,无论你用单位筛选还是人员筛选都能得到正确结果,而不是用like来查找


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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2013/5/13 12:57:00 [只看该作者]

以下是引用jspta在2013-5-12 23:14:00的发言:

一行一条记录...很简单的一对多关系,无论你用单位筛选还是人员筛选都能得到正确结果,而不是用like来查找

你说得对!人员库里,应该是一个人一条记录;单位库,也是一个单位一条记录。但是一个人,有可能是a单位的副总,同时是b单位的老总,这个时候,没法一对多啊


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