以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  两表数据对比并筛选,找不到相同则弹出近似值,只完成了一半  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34368)

--  作者:zerov
--  发布时间:2013/6/6 13:43:00
--  两表数据对比并筛选,找不到相同则弹出近似值,只完成了一半
三表都有“项目”、“客户”,想比对订单表与项目表、客户表的项目、客户,如果没找到一致的数据,则筛选类似的值弹出供用户选择。

例如:根据订单表中的项目名称去《项目》表中找项目名称“四方景园”,如果没有找到一模一样的,根据“四方景园”在《项目》表查找近似值弹出结果供用户选择确定。如何做?

筛选代码如下:
For Each r As Row In Tables("订单").Rows
    Dim dr As DataRow = DataTables("客户").Find("客户=\'" & r("客户") & "\'")
    If dr Is Nothing Then
        r("比对客户结果") = "no"
    End If
Next
界面:


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


但是,现在只实现了一致数据的比对,不能做近似值的筛选。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据比对.table
 

[此贴子已经被作者于2013-6-6 13:48:06编辑过]

--  作者:lsy
--  发布时间:2013/6/6 13:54:00
--  
“近似”的标准?
--  作者:zerov
--  发布时间:2013/6/6 14:05:00
--  回复:(lsy)“近似”的标准?
lsy老师,近似,就是比对数据值从左到右与基值相符的个数越多越好,

   如:订单表中要比对的基值是”四方景园“,而比对数据中查到的近似值有”四“、”四方“、”四方景“等三个值,则将三个近似值按最相似的排序,弹出供用户决定选哪一个。

--  作者:zerov
--  发布时间:2013/6/6 14:27:00
--  
真不好意思,求助贴我发得最多,可还是水平不行,虽然我努力了,唉图片点击可在新窗口打开查看
--  作者:lsy
--  发布时间:2013/6/6 15:16:00
--  
如果严格按照从左到右的顺序比对,那就只需要比对第一个汉字,第一个字都不同的话,往后再比对就失去了意义。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据比对.table


--  作者:zerov
--  发布时间:2013/6/6 16:30:00
--  回复:(lsy)如果严格按照从左到右的顺序比对,那就只...
辛苦lsy老师,谢谢。

不过,这种比对不是这种效果。

1、把《订单》表的“项目”与《项目》表的”项目“比对,逐行比对,如果比对结果完全一致,就比对下一行

2、比对下一行时,如果在《项目》表中找不到完全一致时,就从《项目》表筛选近似值,并将结果弹出的窗口显示出来,让用户选择正确的结果,放入《订单》”比对项目结果“中。

--  作者:don
--  发布时间:2013/6/6 18:27:00
--  
这样?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:go.table



--  作者:lsy
--  发布时间:2013/6/6 19:45:00
--  

 


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据比对.table

[此贴子已经被作者于2013-6-6 19:47:49编辑过]

--  作者:zerov
--  发布时间:2013/6/6 20:06:00
--  
谢谢,两位大师的热心指教,待回家再研究研究
--  作者:lsy
--  发布时间:2013/6/6 20:16:00
--  
以下是引用zerov在2013-6-6 20:06:00的发言:
谢谢,两位大师的热心指教,待回家再研究研究
俺新上的菜,你都没尝,研究啥?