Uh oh! I'm pretty sure your database has the wrong dates stored for this year. And I think I know why. This is going to be complicated.
You see, beginning in 2001, dates entered with 2-digit years are more ambiguous than previously. The year is now 01, which is also a valid month and day, so March 2nd, 2001 comes out 03/02/01 or 01/03/02 or 02/03/01--all of which can be interpreted many different ways. Prior to this year, at least the year part of the date (00 or 99, etc.) was unambiguous, since there is no day or month 00, and that limited the ways Access could interpret the date. I think Access has been misinterpreting the dates entered in this column since the start of the year.
One thing is certain: In the example you just cited (getting 1/01 instead of 3/01), the stored date is in January, not March. It's not the month that's hidden, it's the day. It's not that the displayed format is wrong, it's that the stored date is wrong. The stored date can only be wrong because an ambiguous date was incorrectly interpreted.
You said the value of this column is being calculated as DateAdd("m", -1, Date()). The resulting value is an internal Date value, which is never ambiguous (only formatted dates can be ambiguous), so that's puzzling. But I'm going to guess that at some point, this date value is being converted to a string, probably using the Format("MM/yy",...) function, and that string is then being stored in the date field. That will cause your problem, but it's complicated to explain.
Suppose you did just that, you used the Format() function to take that calculated date value, convert it to a string, and assign it to a form control which is bound to the date/time column in the database. When you assign to a bound control, you're really assigning to the underlying bound field. In this case, that's an internal Date variable. But because you're providing a string, VBA has to guess how to interpret the string. Before this year, VBA could tell that one of the numbers in your string was a year, so it knew the other was a month (because dd/yy isn't an option). But starting in 2001, the string contains something like 03/01. To VBA, this could be March 2001, March 1st, or January 3rd. Which of these it picks depends on the database's default locale, which was taken from the Control Panel Regional Settings of the system the database was created on (and may or may not match the settings on your system). I don't know what the interpretation would be in your case, but I'm pretty sure it's not March 2001, which is what you intended.
If my scenario is correct, you could fix this problem by simply removing the formatting before assigning the calculated date to the form control (or more accurately, to its bound field). Use the control's Format property to specify the format to be displayed ("MM/yy"

, instead of using the Format() function. If for some reason removing the formatting would cause you a problem in your code, at least change the Format() function argument to "MM/yyyy", that is, a 4-digit year; that will disambiguate the string so VBA will interpret it correctly.
Unfortunately, your database already has incorrect dates stored in it. You need to open your table and correct them manually, probably using a 4-digit year.
A lot of Access/VBA programmers don't realize that you can't store a formatted date or a partial date in a date/time column. They think that if they want an mm/yy format in their application, they have to format the date as mm/yy before it's stored, so they do something like <date/time field> = Format("MM/yy", <some date>). This is useless and inefficient, since it involves converting a date value to a string, and then converting that back to a date value. It's also dangerous sometimes, as in this case, because the string loses some information about the date, which leads to your kind of problem.
In reality, formatting should
only be done to dates as they're about to be displayed. All internal manipulation should occur with full dates. By following this policy, you minimize the opportunity for misinterpretation to occur.
I recommend that you think about this enough to really understand it well. From now until 2013, the first 12 days of every month have highly ambiguous short date formats, so you'll be dealing with this kind of problem for years to come. The ambiguous date problem is going to be a fact of life for a long time. It's definitely worth learning to avoid it. Rick Sprague