以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  比对问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189131)

--  作者:nxqtxwz
--  发布时间:2023/11/13 10:36:00
--  比对问题
请问如何将数据库表中选定的记录与指定的Excel文件中的记录进行比对呢?
--  作者:有点蓝
--  发布时间:2023/11/13 10:39:00
--  
先遍历数据库表中选定的记录,再遍历Excel文件中的记录,逐一比较
--  作者:nxqtxwz
--  发布时间:2023/11/13 11:11:00
--  
搞不懂怎样比较。比较完了怎样显示比较的结果呢。比如以身份证号比对,比对完后把数据表中的信息写到EXcEL中
--  作者:有点蓝
--  发布时间:2023/11/13 11:26:00
--  
for each r as row in tables(xxx).rows
For n As Integer = 0 To Sheet.Rows.Count -1
if  r("身份证") = Sheet(n,0).Text then 假设execl身份证放在第一列
Sheet(n,1).Value = r("第一列")
Sheet(n,2).Value = r("第2列")

--  作者:nxqtxwz
--  发布时间:2023/11/13 11:35:00
--  
老师您好,比对后有可能出现两种情况:
一是数据表中有,EXCEL中没有,这种情况要把表中的记录直接写到EXCEL中;
二是数据表中没有,但EXCEL中有,这种情况要有个提示,怎么弄呢。

--  作者:有点蓝
--  发布时间:2023/11/13 11:48:00
--  

1、
for each r as row in tables(xxx).rows
dim b as boolean
For n As Integer = 0 To Sheet.Rows.Count -1
if  r("身份证") = Sheet(n,0).Text then 假设execl身份证放在第一列
b=true
Sheet(n,1).Value = r("第一列")
Sheet(n,2).Value = r("第2列")
end if
next
if b=false then
end if

2、需要另外处理,再遍历execl处理
For n As Integer = 0 To Sheet.Rows.Count -1
dim dr as datarow = datatables("xx").find("身份证=\'" & Sheet(n,0).Text & "\'")
if dr isnot nothing then
msgbox(Sheet(n,0).Text & "没找到")
……