以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 模糊查找报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44344) |
-- 作者:zhanqh -- 发布时间:2013/12/28 15:50:00 -- 模糊查找报错 以下代码当输入字符不匹配时出错 Dim txt As String = e.Form.Controls("TextBox1").Text |
-- 作者:Bin -- 发布时间:2013/12/28 15:51:00 -- 狐表的筛选,匹配符应该使用 * 号不是 %号 txt = "\'*" & txt & "*\'" 这样应该没问题了,如何还有问题,请把文件例子发上来
|
-- 作者:zhanqh -- 发布时间:2013/12/28 15:52:00 -- 改成*号也是一样的结果 |
-- 作者:Bin -- 发布时间:2013/12/28 15:56:00 -- %号也是可以的,我刚才误判了. 你检查一下你Currentchanged的代码. 是否使用了当前行, 你筛选完毕没有结果的话,当前行为空,你再引用当前行肯定会报错的. 需要添加空行判断
|
-- 作者:狐狸爸爸 -- 发布时间:2013/12/28 15:56:00 -- 和筛选无关,你修改这个表CurretChanged事件代码:
if e.Table.Current IsNot Nothing Then |
-- 作者:狐狸爸爸 -- 发布时间:2013/12/28 15:58:00 -- 因为筛选后,如果没有符合条件的行,e.Table.Current 或者 Tables("表名").Current肯定要出错。 使用Current是必须判断的,切记。 |
-- 作者:zhanqh -- 发布时间:2013/12/28 16:00:00 -- Currentchanged有如下代码 Dim dr As DataRow = e.Table.Current.DataRow |
-- 作者:Bin -- 发布时间:2013/12/28 16:01:00 -- if e.Table.Current IsNot Nothing Then Dim dr As DataRow = e.Table.Current.DataRow Dim wz As Integer = Tables("客户").FindRow(dr) If wz >=0 Then Tables("客户").Position = wz End If End if |
-- 作者:zhanqh -- 发布时间:2013/12/28 16:04:00 -- 谢谢,解决了,速度很快 |