基于查询结果的自定义验证规则

时间:2019-02-26 15:43:25

标签: sql ms-access access-vba

我有一个表,用于存储分配给项目的人员以及是否从项目中删除的人员。

每个项目都由几个人担任。

几个角色可以同时由多个人担任,但几个角色一次只能由一个人担任。

如果将某人从项目中删除,则他们的记录将在指定的日期字段中标有删除日期。

[projectNumber] [员工] [角色] [removedDate]

[员工]和[角色]是查找字段

我有一个查询,该查询标识应一次由一个人担任该角色的角色。

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到角色11的项目1111111,验证检查器将不会返回错误。

0 个答案:

没有答案