В Access есть мастер поиска дубликатов.Самый быстрый способ решить эту проблему - объединить таблицы вручную или с помощью одного или нескольких запросов, а затем запустить мастер.Опять же, соберите все свои данные в одну таблицу и запустите мастер.Чтобы усложнить вещи, сломав их.Вы можете получить данные из таблицы CSV: с помощью запроса:
SELECT csvTable.First_Name AS First_Name, csvTable.Last_Name AS Last_Name, csvTable.Number AS [Number]
FROM csvTable
GROUP BY csvTable.First_Name, csvTable.Last_Name, csvTable.Number
HAVING (((Count(csvTable.Number))>1));
, а затем создать запрос с такой же структурой из таблицы xlsx:
SELECT Left([xlsxTable]![FullName],InStr([xlsxTable]![FullName]," ")) AS First_Name, Right([xlsxTable].[FullName],Len([xlsxTable].[FullName])-InStr([xlsxTable]![FullName]," ")) AS Last_Name, xlsxTable.SSN AS [Number]
FROM xlsxTable
GROUP BY Left([xlsxTable]![FullName],InStr([xlsxTable]![FullName]," ")), Right([xlsxTable].[FullName],Len([xlsxTable].[FullName])-InStr([xlsxTable]![FullName]," ")), xlsxTable.SSN
HAVING (((Count(xlsxTable.SSN))>1));
Имеющий счет>1 делает работу по поиску дубликатов.Большая часть остальной части этого - тупые манипуляции со строками, чтобы превратить Полное имя в имя и фамилию непосредственно в SQL.Затем объедините запросы, чтобы их можно было одновременно запустить в панели sql с помощью инструкции UNION ALL:
SELECT csvTable.First_Name AS First_Name, csvTable.Last_Name AS Last_Name, csvTable.Number AS [Number]
FROM csvTable
GROUP BY csvTable.First_Name, csvTable.Last_Name, csvTable.Number
UNION ALL
SELECT Left([xlsxTable]![FullName],InStr([xlsxTable]![FullName]," ")) AS First_Name, Right([xlsxTable].[FullName],Len([xlsxTable].[FullName])-InStr([xlsxTable]![FullName]," ")) AS Last_Name, xlsxTable.SSN AS [Number]
FROM xlsxTable
GROUP BY Left([xlsxTable]![FullName],InStr([xlsxTable]![FullName]," ")), Right([xlsxTable].[FullName],Len([xlsxTable].[FullName])-InStr([xlsxTable]![FullName]," ")), xlsxTable.SSN;
union all сохраняет дубликаты, а union их опускает.Я удалил из профсоюза заявления о том, что он работает лучше.затем используйте мастер поиска дубликатов в комбинированном запросе, например:
SELECT [combine tables].First_Name, [combine tables].Last_Name, [combine tables].Number
FROM [combine tables]
GROUP BY [combine tables].First_Name, [combine tables].Last_Name, [combine tables].Number
HAVING (((Count([combine tables].Number))>1));