Страница 1 из 1

Импорт и преобразование из excel в access 2003

Добавлено: 08 ноя 2010, 15:28
jen9tko
День добрый!
Столкнулся с задачей:
Есть телефонные номера, хранящиеся в файлах excel в различном виде (например, xxxxxxxxxx, (xxx)-xxxxxxx и т.д.)
могу ли я их автоматически привести при импортировании к виду по маске xxx-xxxxxxx без редактирования вручную в access или excel?

Re: Импорт и преобразование из excel в access 2003

Добавлено: 12 ноя 2010, 22:20
AlexZZZ
Воспользуйтесь нижеприведённой функцией PhoneNumber, подставив в качестве аргумента исходный номер телефона.

Код: Выделить всё

Const Mask = "xxx-xxxxxxx"

Function PhoneNumber(Number As String) As String
    Dim n As Byte, prefix As Byte, Str As String
    For n = 1 To Len(Number)
        Select Case prefix
            Case Is = 0
                If Mid(Number, n, 1) = "+" Then _
                    prefix = 1
                If Len(Str) = 0 And Mid(Number, n, 1) = 8 Then
                    prefix = 2
                Else
                    Str = Str & PhN(Number, n)
                End If
            Case Is = 1
                If Mid(Number, n, 1) <> 7 Then
                    Str = Str & PhN(Number, n)
                    prefix = 2
                End If
            Case Is = 2
                Str = Str & PhN(Number, n)
        End Select
        If Len(Str) = Len(Mask) Then _
            Exit For
        If Mid(Mask, Len(Str) + 1, 1) = "-" Then _
            Str = Str & "-"
    Next n
    PhoneNumber = Str
End Function

Function PhN(Number As String, n As Byte) As String
    If Val(Mid(Number, n, 1)) > 0 Then
        PhN = Mid(Number, n, 1)
    Else
        If Mid(Number, n, 1) = 0 Then _
            PhN = 0
    End If
End Function

Re: Импорт и преобразование из excel в access 2003

Добавлено: 17 ноя 2010, 13:20
jen9tko
Спасибо Вам большое.