If you restrict all operations to forms, you have a framework in which to capture such information. However, most situations with which I am familiar will divide that into two problems. You NEVER delete ANYTHING if you need to know what was deleted later. But you might mark it as "inactive" at some point. If you have only queries feeding your forms, you can include a test such as "[MarkForDelete]=False" as part of the query's WHERE clause. Then once it is marked, it is gone but not forgotten.
The other part, remembering actions, requires you to fire events when someone tries an action so that you can track whatever you need to track. This requires some VBA code, no way around it that I know offhand.