2013-09-25 3 views
0

Извините, еще один вопрос о MsAccess.форматирование номеров телефонов ms доступ

У меня есть набор данных:

Phone Number 
444-514-9864 
555-722-2273 
333-553- 4535 
000-000- 0000 
550-322-6888 
444-896-5371 
322-533-1448 
222.449.2931 
222.314.5208 
222.745.6001 

Мне нужно, чтобы она выглядела как (222) 896-5371. Как это сделать в Ms Access или MsExcel?

+0

Готовы ли вы использовать VBA для этого? есть простой способ сделать это в vba – Gutanoth

+0

, если это возможно сделать это в vba .. и проще, чем использовать функцию замены .... пожалуйста, объясните, как мне это сделать .. Спасибо! –

+0

Ну, я использовал функцию replace (см. Мой ответ), но вы также можете отфильтровать первые 3 числа и последние 7 в 2 разных строковых переменных (префикс и суффикс), а затем в конце вы делаете что-то вроде: 'Newphonenumber = "(" & prefix & ")" & suffix – Gutanoth

ответ

1

Вы можете использовать Instr , mid, Left и Right, чтобы сделать эту работу. Я сделал 1 пример с MSDN, вы должны быть в состоянии выяснить, остальные

Dim OldPhoneNumber As String 
Dim NewPhoneNumber As String 
Dim PreFix As String 
Dim PreFix2 As String 

' You can replace this line in Access, just make sure the full phone number is stored in "OldPhoneNumber" 
OldPhoneNumber = Worksheets(<worksheet name>).Range(<cell name>).Value 


PreFix = Left(OldPhoneNumber, InStr(1, OldPhoneNumber, "-", 1)) 
PreFix2 = Left(OldPhoneNumber, InStr(1, OldPhoneNumber, "-", 1) - 1) 

NewPhoneNumber = Replace(OldPhoneNumber, PreFix, "(" & PreFix2 & ") ") 

Debug.Print (NewPhoneNumber) 

Видя, как не все телефонные номера отформатированы точно так же, вы должны сделать различные правила для каждого различного отформатированных телефона номер (необходимо 1, что проверяет «-» «». и один, который проверяет вы также можете отфильтровать пространства

0

В Access вы установите "Input маску" на: "(" 000 ") "000" -" 0000; 1; _

Все ссылки http://office.microsoft.com/en-ca/access-help/input-mask-syntax-and-examples-HP005187550.aspx

+0

К сожалению, это не работает. Даже после того, как я применил маску, +1.444.854.5100 не был изменен (444) 854-5100. В моих полях уже есть номера телефонов. Маска работает только для новых входов –

+0

Возможно создание [макроса] (http://office.microsoft.com/en-ca/access-help/create-a-macro-HA010030811.aspx) – MasterT

0

маска ввода будет работать только для новых данных Вам нужно будет создать макрос или функцию для обновления существующих данных, чтобы они соответствовали желаемому формату

Смежные вопросы