2016-02-12 84 views
0

我有四个表格。如何在MS Access中编写触发器

  • 用户
  • 服务
  • UsedServices
  • 权限

如果我分配一个用户服务(保存在UsedServices),我想用一个触发器来检查用户是否有权限(如果用户存在,在表权限中查找)来使用该服务。

在SQL你会很容易写一个触发器,但我不具有任何线索,如何实现在MS访问。


UPDATE:

UsedServices字段:ID |服务

权限字段:ID |服务| FROM |直到

如果一个人在'UsedServices'表中添加一条记录,那么我想检查该表是否在表'权限'中,如果权限仍然有效,从现在开始。

+1

直到进入2010年,有没有触发,甚至与2010年我觉得更容易在代码中做这样的事情。无论您使用何种形式将用户添加到服务中,只需在保存记录之前添加权限检查即可。 – Gene

+0

https://support.office.com/en-us/article/Create-a-data-macro-b1b94bca-4f17-47ad-a66d-f296ef834200 –

+0

很抱歉,但标识鸵鸟政策得到它。我创建了一个Formular来为用户分配一个服务。这就像USER B使用INTERNET一样。现在我想检查用户B是否在服务INTERNET的“权限”表中拥有权限,以及它是否仍然有效。否则,交易失败。在表权限中有以下字段:USER |服务| FROM |直到 – Cryxon

回答

0

要检查用户B必须在“权限”表中的权限,使用窗体的BeforeUpdate事件:

Private Sub Form_BeforeUpdate(Cancel As Integer) 

    Cancel = YourPermissionDeniedCheckFunction(Me!UserID.Value) 

    If Cancel = True Then 
     MsgBox "User " & Me!UserName.Value & " has not been granted the required permissions for this task." 
    End If 

End Sub