Ms-access – How to log data changes in Access at the table level

ms accesstrigger

I support an Access database for a non-profit organization. We have some issues with data mysteriously changing, and there been some, um, friendly debate over whether this is caused by users who are not the most computer-literate or by some of my background processing.

I've added some checks at the UI level for these conditions, but I'd like to put some checks at the database table level to log when certain fields are changed. This way I'll know about the change whether it was initiated by a user or just from an update query running in the background. Normally I would use an on update trigger, but to my knowledge Access doesn't support triggers. Is there any other logging or trigger-like functionality available in Access?

Best Answer

Unfortunately, Microsoft Access doesn't have triggers, or anything even resembling triggers. Off the top of my head, you have a couple of unappealing choices:

  • Create DateModified and UserModified columns, and update your code to include these values. The downside is that you'll only know the last person who updated a record, and won't have a history to look at..
  • Keep your Access front end, and port your tables over to a SQL Server Express back end. This way, you'll be able to use triggers (as well as back-up jobs and other nice things).