Foxtable(狐表)用户栏目专家坐堂 → 求关联筛选代码


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

主题:求关联筛选代码

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
求关联筛选代码  发帖心情 Post By:2008/12/1 17:04:00 [显示全部帖子]

  我有一个两个表:A和B表
表中都有[订单号]和[口岸]两个字段,我想在A表中筛选订单号和口岸时,在B表中也同时将此订单号和口岸筛选出来。这个代码怎么写.在易表中可以做到的?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2008/12/1 17:46:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-12-1 17:06:00的发言:
自己设计按钮:

tables("表A").filter = 你的条件
tables("表B").filter =  tables("表B").filter

  做不起来!我的意思是做一窗口,做两个文本输入框,一个是订单号,一个是口岸,输入订单号和口岸后,做一个筛选按钮,按筛选按钮后将A表的符合订单号和口岸条件的筛选起来,同时B表中的符合这两个条件的也同时被筛选。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2008/12/1 18:00:00 [显示全部帖子]

   关键是“=我的条件”不知道这么写?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2008/12/1 18:09:00 [显示全部帖子]

Dim Filter As String
With e.Form.Controls("cmbProduct")
    If .Value IsNot Nothing Then
        Filter = "IO = '" & .Value & "'"
    End If
End With
With e.Form.Controls("cmbCustomer")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "口岸 = '" & .Value & "'"
    End If
End With
If Filter > "" Then
    Tables("装箱单").Filter = Filter
    tables("装箱统计").filter =  tables("装箱统计").filter
End If



  我的代码是这么写的。但筛选起来的结果不对:
 举个列子:我在A表中筛选EVG3397这个订单,口岸选择的是上海。但B表中选择出来的是ECG3397的天津口岸。(A表和B表全部有EVG3397这个订单,也全部有上海和天津这两个口岸)。

  这个代码有什么问题?
 

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2008/12/2 9:45:00 [显示全部帖子]

以下是引用ybil在2008-12-1 18:25:00的发言:

注:"DDH","KA"分别为"订单号"和"口岸"的输入框名


'''
Dim Ls As String() = {"DDH","KA","订单号","口岸"}
Dim Ft,Tc As String

For n As Integer = 0 to 1
     Tc = e.form.Controls(Ls(n)).Value
     if Tc > "" then        
         Ft = Ft & " And " & Ls(n+2) & " = '" & Tc & "'"          
     End If
Next

If Ft > "" Then
    Tables("A").Filter = Ft.SubString(5)
    Tables("B").Filter = Tables("A").Filter
End If

    谢谢!你的代码总是简单实用,虽说还是有一点看不太懂(老六的马马虎虎还行),但代码可以简化到这样,绝对值得我学习。希望可以有所收获。


 回到顶部