以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 模糊搜索问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64755) |
-- 作者:swagger -- 发布时间:2015/2/28 22:47:00 -- 模糊搜索问题 怎么在打开窗口时不显示表的数据(filter false?),搜索关键字才会显示对应的一行数据? 就如搜索引擎一样。显示方式除了table还有什么方式?listview? |
-- 作者:swagger -- 发布时间:2015/2/28 23:53:00 -- 找到好几种代码,略举一二
1. Dim tb1 As String= "表名" Dim txt As String = e.Form.Controls("TextBox1").Text Dim zs As String If txt = "" Then Return txt = "\'%" & txt & "%\'" zs = "列名1 Like " & txt & " Or 列名2 Like " & txt & " Or 列名3 Like " & txt & " Or 列名... Like " & txt .... Tables(tb1).Filter=zs
Tables(tb1).AutoSizeCols
|
-- 作者:swagger -- 发布时间:2015/3/1 0:05:00 -- 以下是引用swagger在2015/2/28 22:47:00的发言:
怎么在打开窗口时不显示表的数据(filter false?),搜索关键字才会显示对应的一行数据? 就如搜索引擎一样。显示方式除了table还有什么方式?listview? 方式有: 1.table方式显示 (不显示绑定字段控件) 2.绑定字段控件显示(不显示table,如果纯窗口形式仅显示字段控件,那么就没必要filter false了) (1)同窗口显示(可修改可禁止修改) (2)弹出窗口显示(可修改可禁止修改) 3.table和绑定字段控件同时显示 4. listview方式显示正在研究 5. 其它方式请老师们补充 [此贴子已经被作者于2015/3/1 0:10:52编辑过]
|
-- 作者:黄训良 -- 发布时间:2015/3/1 0:07:00 -- Dim tb1 As String= "表名" Dim txt As String = e.Form.Controls("TextBox1").Text Dim zs As String If txt = "" Then zs = “1+1= 3” else txt = "\'%" & txt & "%\'" zs = "列名1 Like " & txt & " Or 列名2 Like " & txt & " Or 列名3 Like " & txt & " Or 列名... Like " & txt .... Tables(tb1).Filter=zs [此贴子已经被作者于2015/3/1 0:08:20编辑过]
|
-- 作者:有点甜 -- 发布时间:2015/3/1 9:34:00 -- Dim filter As String = "1=2" For Each dc As Col In CurrentTable.Cols filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & e.Form.Controls("TextBox1").Text & "%\'" Next CurrentTable.Filter = filter |
-- 作者:swagger -- 发布时间:2015/3/1 15:58:00 -- 以下是引用有点甜在2015/3/1 9:34:00的发言:
Dim filter As String = "1=2" For Each dc As Col In CurrentTable.Cols filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & e.Form.Controls("TextBox1").Text & "%\'" Next CurrentTable.Filter = filter 谢谢甜老师,这个更好,可以搜索数字类型,之前那个之能搜索字符类型 |
-- 作者:swagger -- 发布时间:2015/3/2 0:07:00 -- 以下是引用有点甜在2015/3/1 9:34:00的发言:
Dim filter As String = "1=2" For Each dc As Col In CurrentTable.Cols filter &= " or convert(" & dc.Name & ",\'System.String\') like \'%" & e.Form.Controls("TextBox1").Text & "%\'" Next CurrentTable.Filter = filter 但有个问题是,如果窗口afterLoad 用Tables("订单_table1").Filter = "false" ,
表格副本currentchanged: Dim dr As DataRow = e.Table.Current.DataRow
就会出现未将对象引用设置到对象的实例,这个要怎么改? [此贴子已经被作者于2015/3/2 0:10:40编辑过]
|
-- 作者:swagger -- 发布时间:2015/3/2 0:21:00 -- 以下是引用swagger在2015/3/2 0:07:00的发言:
但有个问题是,如果窗口afterLoad 用Tables("订单_table1").Filter = "false" ,
表格副本currentchanged: Dim dr As DataRow = e.Table.Current.DataRow
就会出现未将对象引用设置到对象的实例,这个要怎么改? [此贴子已经被作者于2015/3/2 0:10:40编辑过] 刚才看过,其实是窗口afterLoad 和表格副本currentchanged 引起的, 和搜索代码无关。 |
-- 作者:swagger -- 发布时间:2015/3/2 2:04:00 -- 以下是引用swagger在2015/3/2 0:21:00的发言:
刚才看过,其实是窗口afterLoad 和表格副本currentchanged 引起的, 和搜索代码无关。 已经解决了, (1)Tables("订单_table1").Filter = "false" (2) If Tables("订单_table1").Current IsNot Nothing Then End If |