2016-02-12 15 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