我要求对excel表和&之间的记录进行对帐。 MS访问2010表,在不同的列中具有相同的数据。需要在唯一ID的帮助下基于来自MS访问的值验证Excel工作表,并在MS访问报告中生成该唯一ID的错误消息,如下面的格式。 / p>
目前我已根据以下架构创建了一个表并将其映射到报表。现在我需要比较记录并填写下表中的错误消息。
我是VBA的新手,请帮助我采用最佳方法,没有性能容忍度,比如避免多次循环..
表架构:员工
员工ID,员工姓名,员工薪酬
1,测试仪,5000
Excel工作表架构:员工
ID,姓名,薪水
1,测试仪,4000
所需的输出报告:ACCESS 2010女士
文件名,唯一ID,列名,差异
员工,1,工资,访问工资< 5000>与Excel工资单< 4000>
不同答案 0 :(得分:0)
您可以在不使用任何VBA的情况下实现所需的结果。首先在Access中创建一个指向Excel数据的链接表。详细说明可在此处找到:
Import or link to data in an Excel workbook
我将我的链接表[ExcelData]命名为,所以当我在Access中打开它时,它看起来像这样:
要执行对帐,我们需要做的就是创建一个这样的查询:
请注意,第四列的Field:
值为
Difference: "Access salary <" & [Employee].[Employee Salary] & "> is different from Excel sheet salary <" & [ExcelData].[Salary] & ">"
作为参考,该查询的整个SQL语句是
SELECT
"Employee" AS [File Name],
Employee.[Employee ID] AS [Unique ID],
"Salary" AS [Column Name],
"Access salary <" & [Employee].[Employee Salary] & "> is different from Excel sheet salary <" & [ExcelData].[Salary] & ">" AS Difference
FROM
Employee
INNER JOIN
ExcelData
ON Employee.[Employee ID] = ExcelData.ID
WHERE (((Employee.[Employee Salary])<>[ExcelData].[Salary]));
该查询返回以下内容: