Foxtable(狐表)用户栏目专家坐堂 → [讨论]模糊查询不支持?和#吗


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

主题:[讨论]模糊查询不支持?和#吗

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
[讨论]模糊查询不支持?和#吗  发帖心情 Post By:2013/3/7 12:54:00 [只看该作者]

*号不限定长度,?和#限定长度,很方便,但狐表的模糊查询、筛选,好像只支持*,用起来好别扭。

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
回复:(lsy)[讨论]模糊查询不支持?和#吗  发帖心情 Post By:2013/3/7 13:00:00 [只看该作者]

看帮助文件吧,还支持%符号,例如”王%“表示搜索王字开头的数值

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/7 13:14:00 [只看该作者]

以下是引用zerov在2013-3-7 13:00:00的发言:
看帮助文件吧,还支持%符号,例如”王%“表示搜索王字开头的数值

说支持是没用的,用在实例中,显示预想的结果,才行。*号和%的效果是一样的,#和?是没效果,但是我需要固定长度的模糊查询。

[此贴子已经被作者于2013-3-7 13:22:22编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/7 14:06:00 [只看该作者]

If e.Node.Name = "全部" Then
    'Tables("部门表_Table1").Filter = "编码 In ('01','02','03','04','05')"        '不得已,改用这一句
    Tables("部门表_Table1").Filter = "编码 Like '" & "??'"                            '?号无效
Else
    Tables("部门表_Table1").Filter = "编码 Like '" & e.Node.Name & "*'"       '*号不能固定长度。

End If


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/7 14:15:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/7 14:29:00 [只看该作者]

简单东西复杂化了,还是谢谢你。

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/7 14:39:00 [只看该作者]

以下是引用muhua在2013-3-7 14:15:00的发言:

 

如果实在需要,就用这种方法吧:

Dim s As String = "cv"

Tables("表A").Filter = "[第一列] like '*" & s & "*' and len([第一列]) = (4-" & s.Length & ")"

 

变通的办法,没办法的办法,目的达到了,这才是最重要的,再次表示感谢。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/7 14:49:00 [只看该作者]

最终版本:

If e.Node.Name = "全部" Then   
    Tables("部门表_Table1").Filter = "Len([编码]) = 2" 
Else
    Tables("部门表_Table1").Filter = "编码 Like '" & e.Node.Name & "*' And Len([编码]) = (" & e.Node.Name.Length + 2 & ")"
End If


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


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

呵呵,表达式由.net决定,我无法做主。

当初foxtable做架构的时候,就很犹豫,是像易表这样,自己开发一套表达式解析器? 还是直接用微软.Net内置的呢?

 

考虑到Foxtable除了表达式,还可以写代码,所以最后选择了.net内置的。


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/3/7 15:02:00 [只看该作者]

以下是引用狐狸爸爸在2013-3-7 14:52:00的发言:

呵呵,表达式由.net决定,我无法做主。

当初foxtable做架构的时候,就很犹豫,是像易表这样,自己开发一套表达式解析器? 还是直接用微软.Net内置的呢?

 

考虑到Foxtable除了表达式,还可以写代码,所以最后选择了.net内置的。

VB,PB我都接触过,觉得狐表很不错,十几年来,我一直做his数据库系统的管理员,一开始是SQL,现在是Oracle,前者死锁太频繁,后者偶尔出现死锁。一直是看猪跑,用别人开发的软件,没养过猪,有了狐表,看能不能自己养头猪玩玩。


 回到顶部