Im not sure its possible to do this using a format mask in Access, however you could do this by formatting using a function in VBA
eg
Code:
private function FormatUKPhoneNumber(PhoneNumber as string) as string
FormatUKPhoneNumber = PhoneNumber 'set up our default return state
'first lets assume the worst and strip out any existing punctuation
PhoneNumber = replace(PhoneNumber," ","") 'strip out any spaces in the supplied data.....
PhoneNumber = replace(PhoneNumber,"(","")
PhoneNumber = replace(PhoneNumber,")","")
PhoneNumber = replace(PhoneNumber,"+","")
if not isnumber(PhoneNumber) then 'the supplied number has some other invalid characters
'can't be arsed to find out what it is just pump back what was supplied
else
'a uk phonenumber has 11 digits
if length (phonenumber) <>11 then
'hokay options are 'it can be 10 digits if the leading 0 is supressed
'all UK numbers start 0x where x is a digit 1..9
if left(PhoneNumber <> "0") then
FormatUKPhoneNumber = FormatUKPhoneNumber(PhoneNumber)
else ' pump back what was supplied
endif
endif
if left(ThisPhoneNumber,2) = "02" then
FormatUKPhoneNumber = "(" & left(ThisPhoneNumber,3) & ") " & mid(ThisPhoneNumber, 3,4) & " " & right(ThisPhoneNumber,6)
else 'then its a simple number std code (5 digits) + 6 digits
FormatUKPhoneNumber = "(" & left(ThisPhoneNumber,5) & ") " & right(ThisPhoneNumber,6)
endif
endif
end function