我知道我可以比较两个表之间的值,但到目前为止我还不需要为超过2个或3个字段执行此操作,因此将它们各自单独比较并不是问题,我使用的代码如下: / p>
DoCmd.RunSQL "INSERT INTO Issues
SELECT Eligibility.[Member Id]
, Eligibility.[Sex Code]
, Eligibility.State
FROM Eligibility LEFT JOIN Ref
ON Eligibility.[Sex Code] = Ref.[Sex Code]
WHERE (((Ref.[Sex Code]) Is Null));"
然而,现在,我需要比较大约140个不同的领域。有没有比写140个SQL语句并逐个运行它们更好的方法呢?
我希望它找到哪些字段不包含相同的信息,然后从两个表中拉出整行,或者至少从第5列中的值,成员ID,然后我可以运行另一个查询拉如果需要的话,整个行除了该值(因此我可以同时查看两者)并将它们粘贴到另一个表中并突出显示不匹配发生的单元格。
两个表都在同一个数据库中 两个表具有相同的结构,但第二个表可能没有第一个表中的所有值,因此我需要找到一种方法,使它在开始比较行之前根据成员ID匹配行。
答案 0 :(得分:1)
您可以轻松地使用DAO进行比较。使用记录集上的.Fields()
参数,可以获得实际记录集中的所有不同字段。
这可以让您执行以下操作:
Sub exampleSQLComparison()
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
'.... set those recordsets via SQL statements
For Each f In rs1.Fields
If rs1.Fields(f) <> rs2.Fields(f) Then
Debug.Print "Mismatch found for " + f
End If
Next f
End Sub
如果您的查询类似且您唯一要更改的是单个字段(例如ID),您应该能够相应地修改逻辑。