Foxtable(狐表)用户栏目专家坐堂 → 这样的筛选如何设置?


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

主题:这样的筛选如何设置?

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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
这样的筛选如何设置?  发帖心情 Post By:2010/11/9 8:11:00 [只看该作者]

在文本框中输入“一  二”,就是筛选出包括“一”、“二”的行?


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


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

用Split将输入的值拆分为一个数组,然后根据此数组合成筛选表达式。

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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/9 8:40:00 [只看该作者]

以下是引用狐狸爸爸在2010-11-9 8:29:00的发言:
用Split将输入的值拆分为一个数组,然后根据此数组合成筛选表达式。

我也偿试过,最终以失败告终。


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


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

失败?

贴出你写的代码,我帮你看看。


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


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

大概是这样吧

 

If e.Form.Controls("TextBox1").Value <> "" Then
    Dim Vals() As String = e.Form.Controls("TextBox1").Value.Split(" ")
    Dim Filter As String
    For Val As Integer = 0 To Vals.Length - 1
        Filter = Filter & "|[某列] Like '*" & Vals(Val) & "*'"
    Next
    CurrentTable.Filter = Filter.Trim("|").Replace("|"," Or")
End If


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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/9 9:14:00 [只看该作者]

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


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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/9 9:23:00 [只看该作者]

以下是引用lihe60在2010-11-9 9:14:00的发言:
 下载信息  [文件大小:300.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table

Values = Multi.split("0")应改为Values = Multi.split(" ")

有两个缺点:

1、两组字符之间只能有一个空格

2、每组字符要指定对应的列

第一个可以克服,第二个问题每组字符不能指定对应列

 


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


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

两列数据,这样就可以

 

Dim Vals() As String = e.Form.Controls("TextBox1").Text.Split(" ")
Dim Filter As String
Select Case Vals.Length
    Case 1
        Tables("窗口1_Table1").Filter = "[第一列] Like '*" & Vals(0) & "*'"
    Case 2
        Tables("窗口1_Table1").Filter = "[第一列] Like '*" & Vals(0) & "*' And [第二列] Like '*" & Vals(1) & "*'"
    Case Else
        Tables("窗口1_Table1").Filter = ""
End Select

 


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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2010/11/9 11:26:00 [只看该作者]

Dim cmd As New SQLCommand
Dim Count AS Integer
cmd.CommandText = "select count(*) FROM {表A}"
Count= cmd.ExecuteNonQuery()
messagebox.show(count)

输出的结果为0,为什么不是表A的实际行数?


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


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

为什么用ExecuteNonQuery()而不是ExecuteScalar()呢?

 

Dim Count AS Integer
Dim cmd As New SQLCommand
cmd.CommandText = "Select Count(*) FROM {表A}"
Count = cmd.ExecuteScalar()
Output.Show(Count)


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