2008-12-24 41 views
0

基本上,我正在處理MSAccess應用程序和管理員將查看和編輯用戶數據的表單,我希望能夠在每次更改字段時使用舊字段和新字段的值調用事件。該功能將在審計表中添加一條記錄以跟蹤更改。在MSAccess表單上更改數據時的表單級別事件?

我沒有問題創建查詢將條目添加到審計表,但我不知道在哪裏放置函數調用。我已經嘗試了幾個表單級別的事件,所以我不必進入每個五十個字段並編輯它們的onBlur事件來檢查新的值,但沒有運氣。

任何提示將受到歡迎。

回答

0

您可以在插入後,更新後和刪除確認事件後調用您的功能。這些有點像觸發器,在插入,更新或刪除記錄後觸發。

+0

我曾嘗試過(特別是在更新之前/之後),發現當我在字段之間選中時並不總是更新,但有時僅當我關閉表單或移動到新記錄時。我想這是爲了提高效率,但這意味着我必須將全部原始數據存儲在全局變量中進行比較 – 2008-12-24 01:50:14

0

解決方案(1)將在「beforeUpdate」事件中添加事件處理程序。 Remou's proposal對此非常有趣。 (2)將比較記錄集中的數據和afterUpdate事件中控件中的數據:對於綁定到記錄集中的字段的控件,總是有一個步驟,其中控件中的值不同於記錄集。當控制源是直接字段名稱時,這非常簡單。

但我不喜歡在表單級別審計更改的概念:其結果可能不明確,因爲表單級別的數據更改可能不會保存在表級別,因爲表單可以在基礎記錄集之前關閉被更新,或者因爲SQL查詢沒有發送到服務器。

如果您的數據更新是通過SQL synatx完成的,則解決方案(3)將在「事務日誌」中存儲從Access應用程序發送到數據庫服務器的「INSERT」或「UPDATE」字符串。

相關問題