Age old battle you are talking about.
The best of both worlds has the client loading the dictionary/constraints from the server and then doing the checking client side where exceptions are handled more easily.
This assumes that a thick client is ok.
If an application if supposed to provide visual feedback, when you leave the field you should be alerted to any potential problems. Don't trap a user in a field when they may be waiting for that information from someone else.
Do you prevent saving a record for the same reason?
These are the business decissions that we(programmers)
shouldn't make. We should provide feed back in the form of audit reports that it wasn't completed properly. Then it is either a training issue or the process for gathering information is broken, not the application.
Mike Davis
MSsql, VB and Crystal Reports Developer