MS Access比较两个表中的所有字段

时间:2015-08-06 15:19:38

标签: ms-access

我正在开发一个具有明确开始和结束日期的项目,每天都会生成数据。每天我都会收到一个数据集,其中包含从项目开始到前一天的所有数据(例如,在第10天,我将收到第1天到第9天的数据,在第11天,我将收到第1天的数据到10等)。每行数据将包含大约15个字段,我需要能够突出显示是否对每行数据中的任何字段进行了任何追溯性更改。

有没有办法做到这一点?

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

假设您的表名为Table1,并且有一个名为DAY的主键字段,以及名为field1,field2

的2个字段

创建一个查询:

 SELECT 
   A.field1 AS CurrentDay1
 , A.field2 AS CurrentDay2
 , B.Field1 AS PreviousDay1
 , B.Field2 AS PreviousDay2

 ' , iif(A.field1 <> B.field1, "DIFF","" ) AS DiffField1
 ' , iif(A.field2 <> B.field2, "DIFF","" ) AS DiffField2

 FROM Table1 AS A
 LEFT JOIN Table1 AS B
 ON ( A.DAY = B.DAY+1

这将设置一个数据集,该数据集在同一行中具有当前日期和前一天的相同列。

在此查询上添加表单。

在Access 2013(以及2010年我认为)中,您可以为基于CurrentDay1的控件设置条件格式,以将其值与另一个控件PreviousDay1进行比较并相应地对其进行着色(例如,如果不同则为RED)。

如果你不能使用条件格式,你可以添加额外的列,如上图所示。

让我知道你是否正常工作......

我认为记录集和表单仍然允许更新数据

哈维