Set Field [YourTable :: YourField] [ Proper(YourTable :: YourField) ]
In Manage Database
Under the Auto-Enter tab, choose calculated value
Untick do not replace existing value for field (if any) - this will make it evaluate again if you change the data
Then click specify and in the calc window, set proper(yourfieldname) as the calculation
Thanks SW it was not realising that I needed to set it in the auto-enter tab that I was missing.
Just one further question related to this. How do I get all existing records to be validated. By setting "always" on the validation tab, this does nothing.
Picky point: this isn't a "validation" it's an auto-enter operation.
Simplest method is to use Replace Field Contents.
You can copy the expression in your Auto-enter calculation to the clipboard.
Go To a layout where you can put the cursor in this field. Show all Records or find just the records you want to update.
Put the cursor in the field.
Select Replace Field Contents.
Select the calculation option and paste your copied expression into this dialog. (If you used "self" in your expression, you'll need to replace it with the name of the field)
Perform the replace.
So if I understand this correctly, as this is a reformating of the User entered data at the time it is originally captured there is no way to get the data to be checked again after the fact except by running a one-off scriptagainst a found set. If this is correct then it means any future development that requires data to be retro formatted will also require a one-off job applied to the database before the User can be let loose again, not that it is likely to happen often.
Well you can validate it if you want to: Exact ( YourName; Proper(YourName) )
Or you can just format the field without formatting the field contents. Then there is no "retro-fit" needed. You can also define a calculation field to apply the formatting. That way you use your data field to input the data and your calculation field to display the results. Again, there's no update that needs to be specifically applied as this change will update across all the existing records automatically.