Сообщить о получении повторяющихся значений с доступом JOIN
Я тяну отчет в доступе, написав запрос в VBA, и он объединяет таблицы. Проблема в том, что теперь отчет извлекает дубликаты значений в отчете.
ReCrt1 = "SELECT TeamDetails_v1.vName
FROM TeamDetails_v1
LEFT JOIN Attendance ON TeamDetails_v1.vName = Attendance.Name
WHERE ([Attendance!Team] In ('" & Mylist & "'))
AND ([Attendance!Dates]>Forms!AttendanceSummary!DTPicker0)
AND ([Attendance!Dates]<Forms!AttendanceSummary!DTPicker6)
AND ([TeamDetails_v1.vEmployment_Status]='Active')"
DoCmd.OpenReport "Monthly Report", acViewReport, , , , ReCrt1
Разрывы строк в операторе SQL отсутствуют в коде. Я положил это туда для вашего удобства.
Мне нужен отчет для извлечения имен из таблицы "TeamDetails_v1", которая имеет только уникальные записи имен и является "активной" в "vEmployment_Status". И их соответствующее количество записей (формула счета используется в отчете) в таблице "Посещаемость", где даты должны находиться между датами из элементов управления выбора даты. "Mylist" - это массив, содержащий определенные команды, отфильтрованные на основе списка в поле форма.
Здесь вместо извлечения отдельных записей имен из TeamDetails_v1 отчет извлекает n одинаковых данных, если существует n чисел дат. Я предоставил только одно текстовое поле в отчете, и его источник управления указан как "TeamDetails_v1.vName". Есть ли какие-либо проблемы с JOIN, который я использовал, или это источник контроля поля текстового поля?
1 ответ
Вы пытались поставить ключевое слово "Distinct" после SELECT
ReCrt1 = "SELECT DISTINCT TeamDetails_v1.vName FROM TeamDetails_v1 LEFT JOIN Attendance ON TeamDetails_v1.vName = Attendance.Name
WHERE ([Attendance!Team] In ('" & Mylist & "')) And ([Attendance!Dates]>Forms!AttendanceSummary!DTPicker0) And
([Attendance!Dates]<Forms!AttendanceSummary!DTPicker6) And ([TeamDetails_v1.vEmployment_Status]='Active')"
DoCmd.OpenReport "Monthly Report", acViewReport, , , , ReCrt1