以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  Table的Find方法疑问  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130286)

--  作者:qianjiangyue
--  发布时间:2019/1/17 23:01:00
--  Table的Find方法疑问
帮助文件内有以下示例:
With CurrentTable
    Dim r As Integer
    r = .Find("abc", .RowSel + 1, 0, False, False, True)
    If r > - 1 Then \'如果找到符合条件的行
        .Position = r  \'则选择该行
    End If
End With

运行结果是:可以找到“abc11”,但是找不到“11abc”。
请问这是怎么回事?

--  作者:有点甜
--  发布时间:2019/1/17 23:05:00
--  

用findrow吧

 

http://www.foxtable.com/webhelp/scr/0553.htm

 


--  作者:qianjiangyue
--  发布时间:2019/1/17 23:10:00
--  
但是我看帮助文件,FindRow没有区分大小写的功能,而Find有区分大小写的功能呀。
--  作者:qianjiangyue
--  发布时间:2019/1/17 23:11:00
--  
您的意思是Find方法有问题?
--  作者:有点甜
--  发布时间:2019/1/18 8:57:00
--  
以下是引用qianjiangyue在2019/1/17 23:10:00的发言:
但是我看帮助文件,FindRow没有区分大小写的功能,而Find有区分大小写的功能呀。

 

DataTables("订单").BaseTable.CaseSensitive = True  \'区分大小写

Dim dr As DataRow = DataTables("订单").Find("雇员 = \'ep01\'")
If dr IsNot Nothing Then
    Output.show(dr("雇员"))
End If
DataTables("订单").BaseTable.CaseSensitive = False    \'不区分大小写


--  作者:有点甜
--  发布时间:2019/1/18 8:59:00
--  
以下是引用qianjiangyue在2019/1/17 23:11:00的发言:
您的意思是Find方法有问题?

 

find本身就是这样的,只能筛选以abc开头的数据。


--  作者:wyz20130512
--  发布时间:2019/1/18 9:10:00
--  
Table的Find方法只能匹配以指定字符串开始的内容。比喻:"abc01","abc001","abc0001"等。
只要以“abc”开始的均属匹配的值,反之则不匹配。

--  作者:qianjiangyue
--  发布时间:2019/1/18 20:06:00
--  
原来是这样,谢谢啊!
Table的Find方法只能匹配以指定字符串开始的内容。比喻:"abc01","abc001","abc0001"等。
不过狐表这种规定有点莫名其妙啊!VB、C都没有这种限制啊。而且在狐表的帮助文件中没有找到这种限制的说明呀! 

--  作者:有点蓝
--  发布时间:2019/1/18 21:17:00
--  
没有什么好纠结的。每个工具都有自己的 一些特点。

如果要随意模糊匹配,可以参考5楼结合findrow使用