我有下面的代码在两个不同的表之间进行匹配。该代码仅将第一条记录更新为“匹配”。
我想比较T1中ID字段中的每个记录(如果它们存在于T2中),例如要检查A是否存在于T2中,然后转到T1中的下一个记录,并通过循环检查B是否存在于T2中,直到T1中的所有记录都匹配
Table 1
ID
A
B
C
Table 2
ID
A
B
Expected Matching Results
ID
A
B
请帮助
If rs2("ID").Value = rs1("ID").Value Then
rs2.MoveNext()
Do While Not rs2.EOF()
rs1("Matching").Value = "Matched"
rs1.Update()
rs2.MoveFirst()
Loop
End If
答案 0 :(得分:0)
假设我正确理解了您的问题,如果T2中有相应的ID记录,则只想更新T1中的“匹配”列。正如Peter所说,在SQL中执行此操作将是理想的选择。
如果您真的想循环,Peter是正确的,那就是您有一个无限循环:您在达到记录集的末尾时退出,但是在每次迭代结束时,您都将重置为第一条记录。
我不知道为什么已经找到匹配项时为什么要遍历rs2。一旦您知道rs1("ID").Value = rs2("ID").Value
,然后只需更新rs1中的Matching记录并调用rs2.MoveFirst()
,就可以在尝试为T1中的下一个ID查找匹配项时从顶部开始。这里不需要循环。