Ms access Access 2007合并和验证来自多个源的数据

Ms access Access 2007合并和验证来自多个源的数据,ms-access,Ms Access,我有两个不同来源的数据需要合并。有些数据是精确复制的,这很好,易于处理。有些数据在两点上匹配,在第三点上不同,因此在这些情况下,我需要决定保留哪些数据,放弃哪些数据。是否可以运行查询来查找具有相同标识符和相同日期但具有不同描述的任意两行,然后如果一个描述是a,而另一个是B,则要删除具有描述B的行?在这种情况下,我建议您设置表单和子表单。该表单可以基于以下查询: SELECT FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID AN

我有两个不同来源的数据需要合并。有些数据是精确复制的,这很好,易于处理。有些数据在两点上匹配,在第三点上不同,因此在这些情况下,我需要决定保留哪些数据,放弃哪些数据。是否可以运行查询来查找具有相同标识符和相同日期但具有不同描述的任意两行,然后如果一个描述是a,而另一个是B,则要删除具有描述B的行?

在这种情况下,我建议您设置表单和子表单。该表单可以基于以下查询:

 SELECT FROM Table1
 INNER JOIN Table2
 ON Table1.ID = Table2.ID
 AND Table1.Date = Table2.Date
 WHERE Table1.=Description & "" <>  Table2.Description & ""
从表1中选择
内连接表2
在Table1.ID=Table2.ID上
表1.日期=表2.日期
其中Table1.=说明和“Table2.说明和”
在两侧添加“”可防止在一侧为空时遗漏不匹配


子表单应基于表2,ID为链接子字段和主字段。然后,您可以在决定操作之前查看这两个记录。

谢谢。因为有时候我需要从表1和表2中删除一条记录,所以我用两个子表单设置它,每个表一个子表单,每行旁边都有一个删除按钮。现在可以快速比较和删除不需要的描述。但是,如果我要处理几千条记录,我希望尽可能地自动化这一过程,并在可能的情况下首先进行大规模删除,然后使用表单对其他情况做出决定。因此,如果对于ID1和Date1,表1是“This”,表2是“That”,则保留带有“This”的行,删除带有“That”的行。这可以做到吗?@Chelle只要你能够决定在你可能面对的任何场景中,哪些内容需要保留/删除,那么这也可以做到。然而,如果你可能面临许多不同类型的决定,那么这将是一个漫长的过程,你需要完全融入到一个你认为可以信任它自己处理的位置上。@Matt:会有很多固定的情况。这是在处理外科手术,所以会有这样的情况,一个源代码将其编码为A,另一个源代码将其编码为B,但B将更好地用于我们的目的。我们也会遇到这样的情况,其中一个源代码在一天之后编写,因此我们最终从两个源代码得到相同的描述,但日期是一天,在这些情况下,我们将使用两个日期中较早的一个。您建议如何继续?@Chelle始终很难从这一方面看到,我唯一能想到的是在VBA过程中使用“Case”语句来确定每个条件,然后在每个条件下引入要执行的相关SQL代码,以便保留/删除每个表中所需的行。“警告之词”如果可能的话,最好在开始之前按某种形式的优先级对条件进行排序,然后按照逻辑顺序构建代码。很抱歉,我不能给出示例代码等,但我不能给出太多。似乎您有提供给您的数据。如果是这种情况,您可以轻松地向每个表中添加一个名为Deleted的YesNo列。此外,您还可以创建一个始终要删除的决策表。然后,您可以创建一个查询,根据决策是否包含在已删除的表中,为每个表标记相关的已删除列。这将允许您快速查看标记为“已删除”的列,并确保相关数据不会丢失。