Foxtable(狐表)用户栏目专家坐堂 → [求助]有点甜老师,有关查询条件


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

主题:[求助]有点甜老师,有关查询条件

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


加好友 发短信
等级:童狐 帖子:209 积分:1640 威望:0 精华:0 注册:2018/3/5 10:34:00
[求助]有点甜老师,有关查询条件  发帖心情 Post By:2018/12/30 20:05:00 [只看该作者]

有点甜老师,我原来是按控件ComboBox建立年度项目,只可以查询一年的记录,比如2015年的记录,您告诉的代码如下,非常好用。

Dim Filter As String = "1=1"
With e.Form.Controls("ComboBox1")
    If .Value IsNot Nothing Then
       
        Filter = Filter & " and 年度 = '" & .Value & "'"
    End If
End With
Tables("信息查询表").Filter = Filter

 

 

现在我想用CheckedComboBox控件,这个控件是有复选功能,这样就可以一起选择查询多年的记录了,这样就可以按照需要选择几年的记录一起看了,这样改了一下,只能查一年,如果勾选多个确定后,(有的年度本来就没有记录)代码应该是怎样,还得麻烦您啦,谢谢!

With e.Form.Controls("CheckedComboBox1")
    If .Value IsNot Nothing Then
       
        Filter = Filter & " and nd = '" & .Value & "'"
    End If
End With


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

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

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


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/1/2 8:40:00 [只看该作者]

With e.Form.Controls("CheckedComboBox1")
    If .Value IsNot Nothing Then
        
        Filter = Filter & " and nd in ('" & .Value.replace(",","','") & "')"
    End If
End With

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


加好友 发短信
等级:童狐 帖子:209 积分:1640 威望:0 精华:0 注册:2018/3/5 10:34:00
  发帖心情 Post By:2019/1/2 20:22:00 [只看该作者]


With e.Form.Controls("checkedComboBox1")

    If .Value IsNot Nothing Then

        Filter = "nd In ('" & .Value.Replace(",", "','") & "')"

    End If

End With

If Filter > "" Then

    Tables("信息查询表").Filter = Filter

End If

老师这两个代码都能实现,有什么区别谢谢啦!



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/2 20:36:00 [只看该作者]

1、贴出完整代码说明问题。

 

2、说明现在报什么错。


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


加好友 发短信
等级:童狐 帖子:209 积分:1640 威望:0 精华:0 注册:2018/3/5 10:34:00
  发帖心情 Post By:2019/1/2 20:55:00 [只看该作者]

Dim Filter As String = "1=1"

With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        Filter = Filter & " and kl = '" & .Value & "'"
    End If
End With

With e.Form.Controls("CheckedComboBox1")
    If .Value IsNot Nothing Then
        Filter &= " and nd in ('" & .Value.replace(",", "','") & "')"
    End If
End With

With e.Form.Controls("CheckedComboBox2")
    If .Value IsNot Nothing Then
        Filter &= " and yxdq in ('" & .Value.replace(",", "','") & "')"
    End If
End With


With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
       
        Filter = Filter & " and lqpc like  '%" & .Value &   "%'"
    End If
End With

Tables("信息查询表").Filter = Filter

 

老师,以上这几个复选框一起做为相互条件,非常好用,可是在有的时候两个复选框之间却需要以下带红这字的代码才能一起使用,不知为什么!以下代码是有点蓝老师告诉我的。

Dim Filter As String = "1=1"

With e.Form.Controls("CheckedComboBox1")

    If .Value IsNot Nothing Then

        Filter &= " and 考试时间 in ('" & .Value.replace(",", "','") & "')"

    End If

End With

if Filter = "1=1" then

With e.Form.Controls("CheckedComboBox2")

    If .Value IsNot Nothing Then

        Filter &= " and 班级 in ('" & .Value.replace(",", "','") & "')"

    End If

End With

end if

Tables("信息查询表").Filter = Filter

 

以上红字的代码是在什么情况下必须用的,谢谢两位老师!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/2 21:30:00 [只看该作者]

用这个代码绝对没问题

 

Dim Filter As String = "1=1"

With e.Form.Controls("combobox1")
    If .Value <> Nothing Then
        Filter = Filter & " and kl = '" & .Value & "'"
    End If
End With

With e.Form.Controls("CheckedComboBox1")
    If .Value <> Nothing Then
        Filter &= " and nd in ('" & .Value.replace(",", "','") & "')"
    End If
End With

With e.Form.Controls("CheckedComboBox2")
    If .Value <> Nothing Then
        Filter &= " and yxdq in ('" & .Value.replace(",", "','") & "')"
    End If
End With


With e.Form.Controls("combobox2")
    If .Value <> Nothing Then        
        Filter = Filter & " and lqpc like  '%" & .Value &   "%'"
    End If
End With

msgbox(filter)
Tables("信息查询表").Filter = Filter


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


加好友 发短信
等级:童狐 帖子:209 积分:1640 威望:0 精华:0 注册:2018/3/5 10:34:00
  发帖心情 Post By:2019/1/2 21:34:00 [只看该作者]

非常感谢老师,辛苦啦!
但我在另一个查询里用到下面的才好使

Dim Filter As String = "1=1"

With e.Form.Controls("CheckedComboBox1")

    If .Value IsNot Nothing Then

        Filter &= " and 考试时间 in ('" & .Value.replace(",", "','") & "')"

    End If

End With

if Filter = "1=1" then

With e.Form.Controls("CheckedComboBox2")

    If .Value IsNot Nothing Then

        Filter &= " and 班级 in ('" & .Value.replace(",", "','") & "')"

    End If

End With

end if

Tables("信息查询表").Filter = Filter

 明天我在看看,辛苦啦谢谢老师


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/2 21:44:00 [只看该作者]

不可能。请直接用6楼代码。

 

如果还是有问题,msgbox(filter)看弹出什么。


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


加好友 发短信
等级:童狐 帖子:209 积分:1640 威望:0 精华:0 注册:2018/3/5 10:34:00
  发帖心情 Post By:2019/1/2 22:48:00 [只看该作者]

对啦,老师,列名用汉字和英语是一样的么,比如列名是考试时间,改成英语字母kssj的列名这样会影响代码么,我的问题好像在这里!六楼的列名是字母,七楼是汉字,得加上红色的代码两个复选框才好使,谢谢你!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/2 22:56:00 [只看该作者]

在代码最后,加入msgbox(filter)弹出什么?

 回到顶部
总数 32 1 2 3 4 下一页