以文本方式查看主题 - 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 界面: 但是,现在只实现了一致数据的比对,不能做近似值的筛选。 [此贴子已经被作者于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 -- 如果严格按照从左到右的顺序比对,那就只需要比对第一个汉字,第一个字都不同的话,往后再比对就失去了意义。
|
||||
-- 作者:zerov -- 发布时间:2013/6/6 16:30:00 -- 回复:(lsy)如果严格按照从左到右的顺序比对,那就只... 辛苦lsy老师,谢谢。 不过,这种比对不是这种效果。 1、把《订单》表的“项目”与《项目》表的”项目“比对,逐行比对,如果比对结果完全一致,就比对下一行。 2、比对下一行时,如果在《项目》表中找不到完全一致时,就从《项目》表筛选近似值,并将结果在弹出的窗口显示出来,让用户选择正确的结果,放入《订单》”比对项目结果“中。
|
||||
-- 作者:don -- 发布时间:2013/6/6 18:27:00 -- 这样? |
||||
-- 作者:lsy -- 发布时间:2013/6/6 19:45:00 --
[此贴子已经被作者于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的发言: 俺新上的菜,你都没尝,研究啥?
谢谢,两位大师的热心指教,待回家再研究研究 |