以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多值字段的查找,怎样写代码啊?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27850)

--  作者:aubber
--  发布时间:2013/1/12 1:21:00
--  [求助]多值字段的查找,怎样写代码啊?
例子中,表A第一列是多值字段,我希望在窗口1内输入字符后精确查找某一字段,不要用Like,必须要精确查找,因为实际应用中该列内的值是唯一值,所以必须准确的查找。 

谢谢高手们
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询多值字段.table

帮帮忙吧。

--  作者:blackzhu
--  发布时间:2013/1/12 7:48:00
--  
还是觉得用like比较好   既然是唯一的 用like 有啥问题
--  作者:lin_hailun
--  发布时间:2013/1/12 9:30:00
--  
 问一个问题,你希望查询的结果显示的是什么?行号?还是其他什么?

 要么,你使用like,要么你使用find。

 用like的话,这样写条件:"第一列 like \'*," & value & ",*\' or 第一列 like \'*," & value & "\' or 第一列 like \'" & value & ",*\' or 第一列 = \'" & value & "\'"

--  作者:aubber
--  发布时间:2013/1/12 10:12:00
--  
用在短信查询,定位行,返回第二列的值即可。

其实用like就很简单,实际应用中第一列的值是纯数字固定位数的随机唯一编号,我可以先限制查询输入的位数,再使用like加通配符,但不知这样会不会出现查询结果是两个以上的情况。我需要查询出来的结果也必须是唯一的。

帮助中可参考的代码是这样的,可这段代码不是针对多值列的。

If e.Content.StartsWith("**") Then \'如果信息是以约定的**开始
Dim vals() As String = e.Content.Trim("*").Split("*")
Dim
ret As
String
Dim flt As String
For Each val As String In vals
If
flt > ""
Then
flt = flt &
","
End If
flt = flt &
"\'" & val & "\'"
Next
If flt > "" Then
Dim drs As List(Of DataRow) = DataTables("库存").Select("产品 In (" & flt & ")")
For
Each dr As DataRow In
drs
If
ret > ""
Then
ret = ret & vbcrlf

End
If
ret = ret &
"产品:" & dr("产品") & " 库存:" & dr("数量") & " 单价:" & dr("单价")
Next
If ret = "" Then
ret =
"无此产品:" & e.Content
End
If
Else

ret =
"格式错误:" & e.Content
End
If
FoxSms.DelMsgForIndex(e.Index)
\'从SIM卡删除此短信
FoxSMS.SendMsg(e.FromNumber,ret)

End
If


--  作者:lin_hailun
--  发布时间:2013/1/12 11:05:00
--  
 肯定是唯一的,用like直接匹配就行了,参考下3楼。
--  作者:aubber
--  发布时间:2013/1/12 11:11:00
--  
多谢blackzhu和小林兄。

另外小林兄的视频课程啥时更新啊。很是盼望。

--  作者:lin_hailun
--  发布时间:2013/1/12 11:14:00
--  
以下是引用aubber在2013-1-12 11:11:00的发言:
多谢blackzhu和小林兄。

另外小林兄的视频课程啥时更新啊。很是盼望。


呃……教程的话,尽快吧,有空就一个星期录一集。

--  作者:aubber
--  发布时间:2013/1/12 11:25:00
--  
你不更新,我们就停止了进步的步伐,哈哈。确实视频比帮助好看很多啊!
--  作者:blackzhu
--  发布时间:2013/1/12 13:07:00
--  
如果你的数据时唯一的 那么用like找出来也是唯一.