Это немного сложно описать, так голые со мной на этом. У меня 3 таблицы.Как вернуть результаты запроса, даже если результат соединения равен нулю в MS Access?
Один из них содержит анкеты, как описано ниже:
ID NM
==============
1 Profile A
2 Profile B
Второй содержит задания:
ID NM
==============
1 Assignment A
2 Assignment B
Моя третья содержит FID для обоих и позволяет определить приоритеты их следующим образом:
ID P_FID A_FID PRIORITY
========================
1 1 2 1
2 1 1 2
Моя проблема заключается в заполнении третьей таблицы непрерывной формой, поэтому конечный пользователь имеет способность вводить приоритеты. В принципе, есть поле со списком, которое позволяет пользователю выбрать соответствующий профиль. Если в третьей таблице нет записей, она должна показать вам все назначения, чтобы вы могли вводить приоритеты. Если в этой таблице уже есть записи, они должны получить эти значения, чтобы вы могли обновлять приоритеты.
Следующий запрос работает отлично, пока третья таблица пуста. Как только пользователь вводит приоритеты и пытается переключиться на другой профиль, он не возвращает никаких записей, если это не выбранный профиль.
SELECT tblProfileForAssignments.PROFILE_FID,
tblAssignments.NM,
tblProfileForAssignments.PRIORITY
FROM tblAssignments
LEFT JOIN tblProfileForAssignments ON tblAssignments.ID = tblProfileForAssignments.ASSGNMNT_FID
WHERE (tblProfileForAssignments.PROFILE_FID = Forms!frmProfileAssignments!cmboProfile)
OR (tblProfileForAssignments.PROFILE_FID IS NULL);
Можно ли это сделать в одном запросе с использованием союза, я думаю, или я должен просто вернуться к VBA, чтобы понять это? Как я уже сказал, он отлично работает до тех пор, пока третья таблица пуста или они работают только с первым профилем, который они выбирают, кроме того, что он терпит неудачу. Имеет ли это смысл?
Удивительный! Это работало как чемпион. – Munsterlander