Is the field required? Is there a validation rule that will work such as
>0
or
<> 0
Add the validation rule.
If it might be a user changing the value to zero, you can trap that in the Form's BeforeUpdate event. Again, it depends on what the valid range of values for the field is. In the BeforeUPdate event, you can allow 0 if that is the initial value (i.e.IsNull( Me.somefield.OldValue 0 = True) but not allow a non-zero value to be changed to zero.
A data macro might work but they do not support VBA so probably the best it can do is to log the event. I keep an UpdateDT and UpdateBy field on each table and populate them when the data is changed. It is not a real audit trail but it tells me who the last person to update the table was and when they did it. If you do that, you can log the entire record so you know when it happened and who did it. Then you need a function that runs whenever anyone opens the database and emails you if there is a record in the log table. The function should update the log record with a timestamp so that you don't get inundated with emails but get only one. Otherwise, it will be up to you to monitor the error log table at least daily to be able to catch the error immediately while the person who did it has some memory of what he did.
Although I agree, if a user didn't do it, it is a bug and you need to find it, prevention is most important if 0 is an invalid value.