As a display issue rather than a storage issue given that the user should not be interacting directly with the data at table level.
No, it is a storage issue since the Date datatype cannot hold an undefined month or day part.
However since the incomplete data is historical and new records are complete I would use a date field to store those dates. There are a number of ways to deal with recording incomplete values.
Use the time section of the date datatype to indicate the value has an unknown component. It has no effect on the date component.
eg 6:00 AM for unknown day and 6:00 PM for unknown month.
Be careful to choose time values that provide integral fractions in the time component of the date value or test them with plenty of margin for rounding errors using greater than or less then. Many time values do not work well with the equals operator.
If the time also needs to be used, an out of scope dates is an alternative. Access can hold dates well into the past and future. By subtracting 1000 years you could designate M/1/994 as indicating an unknown date in January 1994. Adding 1000 years could designate an unknown date in 2002 could be represented by 3002.
However these techniques mean processing every date value to check the range. An alternative is to hold the incomplete historical values in a different field. These records would have a null value in the date field. In a query Acess can very quicly detect the null and get the information from the other field with an IIF or NZ.
If it was just the day part that was unknown I would use a date datatype and enter the M/1/YYYY. In this column its meaning is understood as unknown day. Having unknown months too is a bit messy but you could use the out of range date technique here.
Another way is much like dates are stored in Access. Zero day is 12/30/1899.
Store an integer that represents the number of months since some convenient date before the start of data. It can be easily parsed to retreive the incomplete date. Use negative numbers to indicate just the year when month is unknown.
Implement the entire processing as a function that outputs the string with the question marks you require.
Years down the track when the historical data becomes irrelevant, the extra field, the null test and the function can be easily dropped as vestigial features.