以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 在查找替换后台数据时,需要查找后台的行可否筛选? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142017) |
-- 作者:gudao123456 -- 发布时间:2019/10/16 16:36:00 -- 在查找替换后台数据时,需要查找后台的行可否筛选? 在进行后台查找替换后台数据时,不需要查找所有的行,只要查找符合某个条件的行就可以了,如: DataTables("学生信息导入样表").StopRedraw Dim i ,y,k As Integer = 0 Dim dr As DataRow For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows k=0 For y=0 To lms.count-1 k = DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= \'" & dr1("身份证号码") & "\'") Next dr1("是否替换成功") = k > 0 i=i+k Next 这里的后台表 DataTables("xszxztb")有几十万条数据,但查找时是可以知道一定范围的,如,里面有个字段“学校”,查找时,只需在符合条件“学校”=“青山学校” 查找就可以了,如何设定这个条件?
|
-- 作者:有点蓝 -- 发布时间:2019/10/16 16:45:00 -- k = DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= \'" & dr1("身份证号码") & "\' and 学校=\'青山学校\'") 如果身份证号码已经可以识别需要的数据,完全没有必要加什么学校条件了,反而会降低效率。再说一个身份证号码会出现在2个学校?
|
-- 作者:gudao123456 -- 发布时间:2019/10/16 16:47:00 -- 我见需要的时间较长,考虑可否压缩的查找范围,我是想先给后台一个更为小的查找范围,不用再所有行去找,不知是否有必要这样做 [此贴子已经被作者于2019/10/16 16:48:35编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/10/16 16:55:00 -- 给数据库的表身份证号码列加一个索引。 这种遍历更新快不了的,如果sql熟,可以考虑直接使用SQL更新
|
-- 作者:gudao123456 -- 发布时间:2019/10/16 17:13:00 -- 我曾用语句: UPDATE {xszxztb},{学生信息导入样表} S ET {xszxztb}.yhkh={学生信息导入样表}.银 行卡号 WHERE {xszxztb}.sfzhm={学生信息导入样表}.身份证号码 在S QL 窗口中执行过,总提示说,在","附件有错误 以前我试过其他数据库,是成功的,而且很快,但那是同在本地的ACC数据库。这个却不行,不知何因? |
-- 作者:有点蓝 -- 发布时间:2019/10/16 17:21:00 -- SqlServer的语法和access有些差别 |
-- 作者:gudao123456 -- 发布时间:2019/10/16 17:27:00 -- 哦,非常谢谢! |
-- 作者:gudao123456 -- 发布时间:2019/10/16 20:34:00 -- 解决了 谢谢! [此贴子已经被作者于2019/10/17 0:29:47编辑过]
|