is this https://www.accessforums.net/showthread.php?t=72028 the same issue? Splitting an issue over 2 or more threads isn't a great idea.
I'm not sure I understand the issue. The macro can fire simply by changing or adding to the records in the table so I don't get what 10 actions in any one field means. You only have 5 events (actions?) available to you.
look for a change in any field
This can mean if any field is changed (thus simply the record) or maybe to you it means "know which field" and maybe even "also know what the change is".
If you want to know which field(s) in a table of 122 fields and
- know what the field was updated to only if different or
- know what the field was updated to even if it's the same,
then I can't envision data macros being suitable for this. That would be an incredible level of auditing (given the number of fields) to handle via data macros or even code. Normally, only some of the fields are of concern.
Perhaps if you are not dealing with a really large record set in your form, then in code you could set a module level variable to true if any change is ever made to any record. Then when closing the form or navigating to another record, you could write the entire 122 field record to tblAudits. By joining the 2 tables on the PK and using DISTINCTROW predicate, you could possibly return records where any field was different although I don't know how you could single out which field(s) without reading through all of them.
Without being able to play with your db, I'm just scratching at the surface. Possibly on the right track, but it may require doing things in steps - like first only returning one output field (the PK?) and using that to extract which records are unique by way of having been (or not, can't tell which) changed. This seems sketchy no doubt, but I can't tell if you'd have records in both tables that are exactly the same because values were re-entered. That could make them identical. To prevent that, I can only see a code solution - maybe getting the exact form control being altered upon a change in a record (using BeforeUpdate), and comparing its OldValue to the current value. If not the same, it's a change and write the record to the audit table.. If they are the same, why bother capturing that? To know which events would come in to play is impossible to say without knowing much more about the form design. If considering a code solution, you would want to be careful about which events will provide the desired result, as there are form and control events and it pays to know their inter-relationships and orders. See https://support.office.com/en-us/art...86553682f9#bm2
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.