I have to disagree with you on using input masks for dates. I
find them very presumptuous. How does the developer know how I
enter dates?
The developer's job is to make sure that the user doesn't enter
invalid or ambiguous data, so restricting the format of the input is
*exactly* within the developer's area of responsibility.
Maybe I use 2 digit years, maybe 4. Maybe I use slashes or
hyphens. Maybe I type "jan 16". Access handles all of this with
*no* coding.
But not in a way that is 100% reliable in terms of expected
interpretation vs. what Access guesses you mean.
When you rely on Access to interpret a 2-digit year, you're assuming
the users will always be inputting data that will conform to the
assumptions behind Access's algorithm for interpreting 2-digit
years. I am not comfortable with that at all, because there are too
many possibilities for that going wrong.
Input masks might make it easy for the developer, but not so
much for the user.
While ease of use is an important goal, for me, data integrity
trumps it. And really, how much or an inconvenience is it, really,
to have to input dates in a particular format? It really isn't any
hardship at all.
The only place I've seen a *possible* use for input masks is for
SSN. The format is consistent enough that they can be helpful.
But even then, I'd rather accept the SSN with or without hyphens,
and then run it through a quick cleanup, validation and
hyphenation function.
US SSN's can include both digits and letters, so I would never use
an input mask for them. I don't use input masks for postal codes or
telephone numbers, either.
But I consider requiring 4-digit years to be an absolute
requirement, regardless of whether the input data range spans the
Access 2-digit year window or not. Rather than write a bunch of code
to validate the user input, I just narrow the possibilities of how
the user can enter the data, and the input mask is the easiest way
to do that.
And I've never had a single user complain about it.
*I* find it annoying, but the users don't.
And I can be sure the data is getting entered properly.
What's not to like?