2016-02-04 90 views
0

我需要在從表中刪除記錄後立即執行記錄副本,以便在意外刪除時恢復記錄。MS Access:將已刪除的記錄自動移動到「回收站」表

我正在使用MS Access。是否有任何內置的方式來做到這一點,或者我將不得不在每次DELETE之前INSERT INTO SELECT?

只爲一張表做它並不是一個問題。我想爲任何表使用準備好的任何表,所以我不需要爲數據庫中的每個表創建和配置另一個回收bin表,如果我希望成功移動操作,這將是必需的。

除了SQL,我可以運行VBA來完成這項任務。

編輯

有添加一個布爾列,用於說明該記錄顯示或存檔(有「刪除」我的目的意義)的建議,但是這涉及到改變每一張桌子和每一個我已經做過的查詢,所以它不適合我,只能作爲最後的手段。

+0

您可以運行一個宏來創建每個表的表副本,後綴爲Audit,並使用數據宏以與SQL Server中的觸發器相同的方式實現此目的。一點點努力,但一個很好的快速修復。單個備份表將是非常寬的列明智,並將需要大量的編碼。 –

+0

是的,我不想爲來自每個表格的記錄創建單個表格。使用宏創建表格副本很容易嗎? –

+0

谷歌它,複製訪問表VBA,然後相應地調整 –

回答

0

當你有級聯刪除時會發生什麼,就像所有設計良好的數據庫一樣?另外,在DELETE之前將其插入到備份表中並不能解決您將面臨的所有問題。另外,複製表格會導致大量副本,從而增加數據庫的大小,並且您將很快或稍後清理數據。

日誌可以是更好的解決方案嗎?

+0

日誌內置MS Access嗎?或者,是否我可以一次執行所有表格,無論結構如何? –

+0

@EduardoPoço假設您和您的用戶僅通過表單管理數據,您可以在每個表單的before_update事件中調用VBA宏。一個很好的例子可以在http://www.databasedev.co.uk/audit_trail.html找到。請注意,添加時間戳是個好主意。 – Cisco

+0

對不起,延誤了。我將開始爲此目的使用表單。 –

相關問題