以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 有关模糊查找的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109319) |
-- 作者:motorcar88 -- 发布时间:2017/11/9 14:18:00 -- 有关模糊查找的问题 If e.DataCol.Name = "合同日期" Then \'发生变化的是政策日期吗? \'在政策表找出该产品 Dim dr As DataRow dr = DataTables("政策").Find("政策日期 = \'" & e.DataRow("合同日期") & "\'" ) If dr IsNot Nothing \'如果找到, 则设置各列内容 e.DataRow("政策日期")= dr("政策日期") End If End If 以上代码只能实现精确查找,但不能模糊匹配。 比如:政策日期有2017-1-1、2017-1-15、2017-2-10,如果合同日期是2017-1-18,期望能自动找到2017-1-15这个政策日期。 如何实现,请各位老师批教。
|
-- 作者:2900819580 -- 发布时间:2017/11/9 14:40:00 -- 先找符合日期的,如果找不出来,则将政策日期中少于合同日期的筛选出来,再排序,找到第一个, |
-- 作者:有点甜 -- 发布时间:2017/11/9 15:21:00 -- 参考
http://www.foxtable.com/webhelp/scr/0396.htm
|
-- 作者:motorcar88 -- 发布时间:2017/11/9 15:24:00 -- 我是初学者,这样的代码如何写?请老师帮帮忙。 |
-- 作者:有点甜 -- 发布时间:2017/11/9 15:38:00 --
If e.DataCol.Name = "合同日期" Then \'发生变化的是政策日期吗?
\'在政策表找出该产品
Dim dr As DataRow
dr = DataTables("政策").Find("政策日期 <= \'" & e.DataRow("合同日期") & "\'", "政策日期 desc")
If dr IsNot Nothing \'如果找到, 则设置各列内容
e.DataRow("政策日期")= dr("政策日期")
End If
End If
[此贴子已经被作者于2017/11/9 15:38:32编辑过]
|
-- 作者:motorcar88 -- 发布时间:2017/11/9 15:42:00 -- 非常感谢您,但这样的代码如何写?是否在我发上来的代码上加代码?请赐教! |
-- 作者:有点甜 -- 发布时间:2017/11/9 15:57:00 -- 直接用5楼的代码替换你原来的,即可。 |
-- 作者:motorcar88 -- 发布时间:2017/11/9 15:57:00 -- 非常感谢各位老师!一开始我以为很复杂,老师写的代码如此简结,太棒了!我学习的信心立刻飙升。买了个开发版一直很少用,现在要多花时间弄弄了! |