Foxtable(狐表)用户栏目专家坐堂 → 交叉检索搜索


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

主题:交叉检索搜索

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/29 13:47:00 [显示全部帖子]

http://www.foxtable.com/webhelp/topics/0102.htm,理解一下or、and的区别

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/29 14:11:00 [显示全部帖子]

是的

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/29 15:18:00 [显示全部帖子]

Dim Filter As String
With e.Form.Controls("开始")
    If .Value IsNot Nothing Then
        Filter = "(记录时间 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("结束")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " and "
        End If
        Filter = Filter & "记录时间 <= #" & .Value & "#)"
    Else
        Filter = Filter & ")"
    End If
End With


With e.Form.Controls("开始2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " or "
        End If
        Filter = Filter & "(记录时间 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("结束2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " and "
        End If
        Filter = Filter & "记录时间 <= #" & .Value & "#)"
    Else
        Filter = Filter & ")"
    End If
End With
If Filter > "" Then
    Tables("主控窗口_Table2").Filter = Filter
End If

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/29 15:47:00 [显示全部帖子]

建议分开2个条件,然后再合并

Dim Filter As String
With e.Form.Controls("开始")
    If .Value IsNot Nothing Then
        Filter = "记录时间 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("结束")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " and "
        End If
        Filter = Filter & "记录时间 <= #" & .Value & "#"
    End If
End With

Dim Filter2 As String
With e.Form.Controls("开始2")
    If .Value IsNot Nothing Then
        Filter2 = Filter2 & "记录时间 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("结束2")
    If .Value IsNot Nothing Then
        If Filter2 >"" Then
            Filter2 = Filter2 & " and "
        End If
        Filter2 = Filter2 & "记录时间 <= #" & .Value & "#"

    End If
End With
If Filter > "" AndAlso Filter2 > "" Then
    Tables("主控窗口_Table2").Filter = "(" & Filter & ") or (" & Filter2 & ")"
else
If Filter > "" Then
    Tables("主控窗口_Table2").Filter = Filter
elseIf Filter 2> "" Then
    Tables("主控窗口_Table2").Filter = Filter2
End If
End If

Filter有关的其它交集的条件放到Filter里,Filter2有关的其它交集的条件放到Filter2里

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/29 15:56:00 [显示全部帖子]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

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


加好友 发短信
等级:超级版主 帖子:110669 积分:563259 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/29 16:05:00 [显示全部帖子]

很明显的错误了,手打输多了一个空格,自行去掉。起码一些简单的错误要学会自行处理,总不能别人给的代码也只能等着别人更改。

 回到顶部