You will not be able to do that. Numbers cannot be displayed in that format
without converting them to another data type, which is typically done in a
query, form or report.
Your have two recourses if it needs to be displayed that way in the
datasheet
1. Create a calculated column that uses VBA to convert the number to either
a string or a Date/Time value with the proper format
2. Create a new column with a data type of Date/Time or Text, and run an
Update query to calculate the value to go into the new field.
The decision between Date/Time and Text depends on whether you need to use
date arithmetic on the resulting values, or if you need to be able to sort
the results as dates rather than strings.
In order to properly handle errors, I would create a VBA function in a
module to do this conversion. Here is how it would look if you wanted it to
return a string (I am going to assume you are only using AD dates later than
1900 - you will need to modify the following to handle BC dates):
Function CNumberToDateFormattedString(n as long) _
as String
dim d as date, s as string
if n is null then
ConvNumberToDateFormattedString=""
else
If n between 19000101 and 99991231 then
s=cstr(n)
on error resume next
d=dateserial(CInt(Left(s,4)),CInt(Mid(s,5,2)), _
CInt(Right(s,2)))
if err<>0 then
CNumberToDateFormattedString="invalid date"
else
on error goto 0
s=Format(d,"mmm d, yyyy")
CNumberToDateFormattedString=s
end if
else
CNumberToDateFormattedString="invalid date"
end if
end if
End Function
To use it in an update query, you would do this:
update table
set newtextfield =
CNumberToDateFormattedString(orginalnumberfield)