Пользовательское правило проверки на основе результатов запроса - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть таблица, в которой хранятся сотрудники, назначенные проекту, и если они удалены из проекта.

В каждом проекте есть несколько человек, исполняющих роли.

Можно заполнить несколько ролей.по нескольким одновременно, но несколько может быть заполнено только одним человеком за один раз.

Если человек удаляется из проекта, его запись помечается датой удаления в указанном поле даты.

[номер проекта] [сотрудник] [роль] [удаленные данные]

[сотрудник] и [роли] являются полями поиска

У меня есть запрос, который определяет роли, которые должны иметь одного человеказаполняя эту роль за раз.

SELECT first(projectNumber) AS pn, employee, role
FROM [Table]
WHERE projectNumber = "NUMBER" and removeddate is null and (role = 9 or role = 10 or role =2 or role =3 or role =1)
GROUP BY pn, role;

Возвращает роли, которые могут иметь только одного человека в этой роли для определенного номера проекта.Если эта роль не заполнена, то для этой записи в этом запросе ничего не возвращается.

Я пытаюсь заставить форму ссылаться на запрос с помощью dlookup, но я не уверен, что делаю.

Как создать правило проверки, которое проверяет, заполнены ли роли для каждого проекта, и возвращает ошибку, если да?

Пример таблицы:

[projectNumber][employee][role][removedDate]
  1111111        A         1
  1111111        B         2
  1111111        C         3
  1111111        D         4
  1111111        E         5
  1111111        F         9     2/20/19
  1111111        G         4
  1111111        H         5
  1111111        I         9
  1111111        J         10

Здесь будет результат запроса, идентифицирующий все роли, которым может быть назначен только один человек, который не был удален.

 [projectNumber][employee][role][removedDate]
  1111111        A         1
  1111111        B         2
  1111111        C         3
  1111111        I         9

Из этих результатов я хочу, чтобы средство проверки правильности ссылалось на эти результаты, есликто-то должен был добавить: Сотрудник M к проекту 1111111 для роли 1, 2, 3, 9. Он должен возвращать ошибку, так как эти роли назначены.

Проверка проверки НЕ выдаст ошибку, если кто-то попытался добавить: Сотрудник N для проекта 1111111 на роль 10.

...