A field is for data, putting it in and getting it out. Having to create a field to perform a button task is a lot of overhead and can be confusing when importing/exporting.
A button/button bar is for performing functions. No overhead in the database schema ..
If you want to get snazzy, button labels can be determined by calcs, making them more dynamic.
So for my solution it might be better to take the fields off the layout and replace them with buttons then, because the only reason they are on the layout is to show a tick mark if the module is open for that record. I could instead use the field name as the label for the button, and then just attach the script to the button, instead of attaching it to the OnObjectEnter.
Ok i have been playing around with the button bar for awhile now, and I think for my scenario using the script triggers seems to work better as I have a bit more control over how the check mark is displayed.
To give more info, might make more sense. I have a contacts module that shows if a contact is a client, a supplier, an employee, committee member and so on. One contact can fall into a number of different roles. So I created the various modules with the unique attributes for the various sections, then for all the contact info that is the same in each table, I have put those into a contact table. Then I created a check field for each foreign key field that is blank if empty or a tick mark if the key field had data, "... Case ( not IsEmpty ( _fk_StaffID ) ; "✓" ; "" ) ...". This works well for displaying on the contacts list view, I can hide the field if empty, and for the fields that have the tick mark, I can set styles as needed.
I am finding it a bit of a challenge to get the same visual effects using the button bar.