Foxtable(狐表)用户栏目专家坐堂 → [求助]关于查询窗口的设计


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

主题:[求助]关于查询窗口的设计

帅哥,在线噢!
bobolan521
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:7362 威望:0 精华:1 注册:2013/11/26 7:49:00
[求助]关于查询窗口的设计  发帖心情 Post By:2014/3/3 12:28:00 [只看该作者]

你好,我有2个问题要请教一下,

1、请问一下,我的这个项目中,为什么查询1按钮中如果 部门没有选会提示出错,而查询2按钮中部门没选,或者选了都不会出错呢?我两个查询按钮里的代码类似的

2、如果我的窗体中启用了多个复选组合框,我该如何写table 的Filter 代码,因为有部分复选组合框,不一定会使用,我现在的一个窗体里有4个复选组合框,该如何写FLITER,

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.rar



 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/3 12:32:00 [只看该作者]

1、不要用iif,应该这样写:

Dim bm  As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")  
If bm.Value Is Nothing Then
   Tables("表A").Filter = "[部门名称]   In ( 'IT部') "
Else
    Tables("表A").Filter= "[部门名称]  In ( '" & bm.value.Replace(",","','") & "')"
End If

 

2、参考:

http://www.foxtable.com/help/topics/1058.htm

 


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


加好友 发短信
等级:三尾狐 帖子:658 积分:7884 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/3/3 12:37:00 [只看该作者]

谢谢狐狸爸爸,你这样的写法,我了解的,但是因为我的窗体中用了很多个复选组合框,我该如何写条件呢,有可能我窗体中有四个复选结合框,我有可能用到了其中了一个,也有可能用两个,也有可能全部用,那我该如何写查询条件最简便呢?

Tables("表A").Filter= "[部门名称]  In ( '" & bm.value.Replace(",","','") & "') and 民族 in ( '" & mz.value.Replace(",","','") & "' and 省份 in ( '" & sf.value.Replace(",","','") & "'))"  如果我省份不选择,执行这个代码会了错的

[此贴子已经被作者于2014-3-3 12:39:47编辑过]

 回到顶部
帅哥,在线噢!
y2287958
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4748 积分:34538 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/3/3 12:39:00 [只看该作者]

搜索一下吧
论坛很多例子

 回到顶部
帅哥,在线噢!
bobolan521
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:7362 威望:0 精华:1 注册:2013/11/26 7:49:00
  发帖心情 Post By:2014/3/3 12:41:00 [只看该作者]

谢谢狐狸爸爸,你这样的写法,我了解的,但是因为我的窗体中用了很多个复选组合框,我该如何写条件呢,有可能我窗体中有四个复选结合框,我有可能用到了其中了一个,也有可能用两个,也有可能全部用,那我该如何写查询条件最简便呢?

Tables("表A").Filter= "[部门名称]  In ( '" & bm.value.Replace(",","','") & "') and 民族 in ( '" & mz.value.Replace(",","','") & "' and 省份 in ( '" & sf.value.Replace(",","','") & "'))"  如果我省份不选择,执行这个代码会了错的


 回到顶部
帅哥,在线噢!
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/3 12:43:00 [只看该作者]

这里告诉你方法了,逐个判断,逐个合并:

 

http://www.foxtable.com/help/topics/1058.htm

 


 回到顶部
帅哥,在线噢!
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/3 12:46:00 [只看该作者]

具体到你的例子,就是:

 

Dim bm1  As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")  

Dim bm2  As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox2")  
Dim Filter As String
If bm1.Value IsNot Nothing Then
    Filter= "[部门名称]  In ( '" & bm1.value.Replace(",","','") & "')"
End If

If bm2.Value IsNot Nothing Then

    If Filter > "" Then

       Filter = Filter & " And "

    End If
    Filter= "[民族]  In ( '" & bm2.value.Replace(",","','") & "')"
End If

Tables("表A").Filter = Filter


 回到顶部
帅哥,在线噢!
bobolan521
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:7362 威望:0 精华:1 注册:2013/11/26 7:49:00
  发帖心情 Post By:2014/3/3 12:51:00 [只看该作者]

谢谢

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2014/3/3 12:59:00 [只看该作者]

现成的要用呀

 回到顶部
帅哥,在线噢!
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/3 13:04:00 [只看该作者]

前面漏了一点,应该:

 

Dim bm1  As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")  

Dim bm2  As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox2")  
Dim Filter As String
If bm1.Value IsNot Nothing Then
    Filter= "[部门名称]  In ( '" & bm1.value.Replace(",","','") & "')"
End If

If bm2.Value IsNot Nothing Then

    If Filter > "" Then

       Filter = Filter & " And "

    End If
    Filter= Filter & "[民族]  In ( '" & bm2.value.Replace(",","','") & "')"
End If

Tables("表A").Filter = Filter


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