Foxtable(狐表)用户栏目专家坐堂 → 生成查询条件的通用代码


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

主题:生成查询条件的通用代码

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/8/24 20:04:00 [只看该作者]

呵呵,不顶对不起楼主。

学习了。

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/8/25 5:49:00 [只看该作者]

学习!


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


加好友 发短信
等级:幼狐 帖子:132 积分:2250 威望:0 精华:0 注册:2008/9/1 8:41:00
  发帖心情 Post By:2009/8/25 22:22:00 [只看该作者]

太好了,收藏了好好研究

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/26 13:35:00 [只看该作者]

 学习.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/26 13:42:00 [只看该作者]

以下是引用reachtone在2009-8-24 17:19:00的发言:

但要注意,二楼的代码只能对字符型的列进行查询。如果你的列中有其它数据类型,需要在 If i < Cols.Count 里进行判断。如:
If  Args(0).Cols(i).DataCol.IsNumeric   '如果是数值型
If  Ars(0).Cols(i).DataCol.IsDate         '如果是日期型,等等。否则会出错的。

[此贴子已经被作者于2009-8-24 17:22:26编辑过]

 有谁可以告诉我这个判断是怎么加进去的?


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/26 14:43:00 [只看该作者]

如果是数值型的列,可以这样:
把原来代码中的:flt = flt & " and " & Cols(i) & " like '*" & Val & "*'"  替换成:

        If Args(0).Cols(i).DataCol.IsNumeric and Trim(Val).length > 0 and Char.IsNumber(Val) Then
            flt = flt & " and " & Cols(i) & " = " & Val
        ElseIf Args(0).Cols(i).DataCol.IsString Then
            flt = flt & " and " & Cols(i) & " like '*" & Val & "*'"
        End If

第一行表示的意思是:
如果列类型为数值型:Args(0).Cols(i).DataCol.IsNumeric,而且
      输入的关键字不为空:Trim(Val).length > 0,而且
     输入的关键字也是数值型:Char.IsNumber(Val)

[此贴子已经被作者于2009-8-26 14:44:10编辑过]

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


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

以下是引用reachtone在2009-8-26 14:43:00的发言:

如果是数值型的列,可以这样:
把原来代码中的:flt = flt & " and " & Cols(i) & " like '*" & Val & "*'"  替换成:

        If Args(0).Cols(i).DataCol.IsNumeric and Trim(Val).length > 0 and Char.IsNumber(Val) Then
            flt = flt & " and " & Cols(i) & " = " & Val
        ElseIf Args(0).Cols(i).DataCol.IsString Then
            flt = flt & " and " & Cols(i) & " like '*" & Val & "*'"
        End If

第一行表示的意思是:
如果列类型为数值型:Args(0).Cols(i).DataCol.IsNumeric,而且
      输入的关键字不为空:Trim(Val).length > 0,而且
     输入的关键字也是数值型:Char.IsNumber(Val)

[此贴子已经被作者于2009-8-26 14:44:10编辑过]

  老大,你好人做到底,这一个只是数值型的,如其他的类型呢,你特别提到日期型的,怎么改呢?


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/26 15:01:00 [只看该作者]

还有这个代码绑定表不能用吗?


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19403 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/26 15:14:00 [只看该作者]

日期也很简单啊,无非再加上date的判断而已。
这个代码就是根据用户输入的查询关键字自动生成查询条件的,返回值就是一串字符。在filter里可以直接使用。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/26 15:15:00 [只看该作者]

以下是引用blackzhu在2009-8-26 15:01:00的发言:

还有这个代码绑定表不能用吗?

  不存在这个问题.


 回到顶部
总数 26 上一页 1 2 3 下一页