【发布时间】:2019-12-30 23:56:33
【问题描述】:
我在 vb6 中有两个记录集 rs1 和 rs2。我想将 rs1 中的每条记录与 rs2 中的每条记录进行比较。如果 rs1 中的 rtn(column) 与 rs2 中的 rtn 相同,则 set date = now 和 claim = c。
这就是我想做的。如何比较rs1中的每一行和rs2中的每一行?
【问题讨论】:
标签: vb6
我在 vb6 中有两个记录集 rs1 和 rs2。我想将 rs1 中的每条记录与 rs2 中的每条记录进行比较。如果 rs1 中的 rtn(column) 与 rs2 中的 rtn 相同,则 set date = now 和 claim = c。
这就是我想做的。如何比较rs1中的每一行和rs2中的每一行?
【问题讨论】:
标签: vb6
只需在类似于以下的内部和外部循环中循环两个记录集
rs1.MoveFirst
While not rs1.EOF
rs2.MoveFirst
While not rs2.EOF
'Do your comparisons here'
if rs1("colum").value = rs2("column").value then
'do other stuff
end if
rs2.MoveNext
Wend
rs1.MoveNext
Wend
如果您需要比较每个字段,您可以遍历类似于以下的字段 这假设记录集以相同的顺序具有相同的字段
Dim i as integer
for i = 0 to rs1.Fields.Count -1
if rs.fields(i).Value = rs2.fields(i).value then
'DO other stuff'
End if
Next i
【讨论】:
更好的解决方案是在 Query/SQL 中进行比较,而不是在代码中进行比较,以便从单个查询中返回每个不匹配的行。
例如
SELECT T1.*,T2.*
FROM T1,T2
WHERE (T1.ID=T2.ID) AND
((T1.Field1<>T2.Field1) OR (T1.Field2<>T2.Field2) ...)
【讨论】: