プロが教える店舗&オフィスのセキュリティ対策術

外部データベースで、電話番号がばらばらにテキスト型で入力されているのですが、
それをきれいな数値型に修正したいと思っています。
全角だったり半角だったり、()があったり、ハイフンがあったりなのですが、
すべて統一して数字のみにしたいです。
追加クエリで、そのようなばらばらなデータを、数値のみにして自分のDBに追加していきたいのですが、よい方法がありましたら、教えて下さい。

A 回答 (2件)

ユーザ定義関数を作るのは同じですが、


Access2000なら、

Sub A()
  Msgbox ChangeTelNumber("(03)123-1234")
End Sub

Public Function ChangeTelNumber(byref sBuf As String) As String

  sBuf = StrConv(sBuf, vbNarrow)
  sBuf = Replace(sBuf, "(", "")
  sBuf = Replace(sBuf, ")", "")
  sBuf = Replace(sBuf, "-", "")

  ChangeTelNumber = sBuf

End Function

なんてどうでしょう。
    • good
    • 0

ユーザー定義関数を作ってみました。

半角文字にして、指定した文字を削除します。
電話番号の先頭はゼロが多いので、下の結果は文字にしてあります。(03)123-4567は031234567 になります。

'半角の数値のみにする関数
Public Function Str2Numeric(Moji As String) As String
  Dim L As Integer 'カウンタ
  Dim LenMoji As Integer '電話番号の文字長

  Moji = StrConv(Moji, vbNarrow) '半角にする
  LenMoji = Len(Moji) '最初の電話番号の文字長
  For L = LenMoji To 1 Step -1
    Select Case Mid(Moji, L, 1)
      Case "(", ")", "-" '削除する文字を登録する
        Moji = Left(Moji, L - 1) & Right(Moji, Len(Moji) - L) '削除
    End Select
  Next
  Str2Numeric = Moji
End Function
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!