以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 一个晚上学一条公式 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33021)
|
-- 作者:everybody
-- 发布时间:2013/5/12 4:54:00
-- 一个晚上学一条公式
如图,愿望很简单。
就是点击表a某列的时候,自动把 表b中第一列含有表a当前行(第一行)的行筛出来,思路知道,就是看下面公式怎么错了? 此主题相关图片如下:1.png 此主题相关图片如下:2.png 此主题相关图片如下:3.png
Tables("表b").Filter = "第一列 In \'(" & e.Table.Current("第一列") & ")\'"
|
-- 作者:lsy
-- 发布时间: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
-- 发布时间:2013/5/12 12:37:00
--
一下子不理解,收藏学习先。谢谢!!
|
-- 作者:jspta
-- 发布时间: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
-- 发布时间:2013/5/12 19:22:00
--
以下是引用jspta在2013-5-12 13:17:00的发言:
[此贴子已经被作者于2013-5-12 13:26:08编辑过]
Like在这里,会筛选出你不想要的记录。
|
-- 作者:everybody
-- 发布时间:2013/5/12 20:21:00
--
like,是把包含的都列出来了
|
-- 作者:jspta
-- 发布时间: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
-- 发布时间:2013/5/12 20:37:00
--
没办法,我翻译一下给你听,表一,实际是单位库;表二,是人员库。一个人有可能在两个或者三个单位里面有兼职。你说怎么办?
|
-- 作者:jspta
-- 发布时间:2013/5/12 23:14:00
--
以下是引用everybody在2013-5-12 20:37:00的发言: 没办法,我翻译一下给你听,表一,实际是单位库;表二,是人员库。一个人有可能在两个或者三个单位里面有兼职。你说怎么办?
一行一条记录...很简单的一对多关系,无论你用单位筛选还是人员筛选都能得到正确结果,而不是用like来查找
|
-- 作者:everybody
-- 发布时间:2013/5/13 12:57:00
--
以下是引用jspta在2013-5-12 23:14:00的发言:
一行一条记录...很简单的一对多关系,无论你用单位筛选还是人员筛选都能得到正确结果,而不是用like来查找
你说得对!人员库里,应该是一个人一条记录;单位库,也是一个单位一条记录。但是一个人,有可能是a单位的副总,同时是b单位的老总,这个时候,没法一对多啊
|