- 締切済み
Access2000のテキスト型から数値型への変換
外部データベースで、電話番号がばらばらにテキスト型で入力されているのですが、 それをきれいな数値型に修正したいと思っています。 全角だったり半角だったり、()があったり、ハイフンがあったりなのですが、 すべて統一して数字のみにしたいです。 追加クエリで、そのようなばらばらなデータを、数値のみにして自分のDBに追加していきたいのですが、よい方法がありましたら、教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom777
- ベストアンサー率77% (14/18)
ユーザ定義関数を作るのは同じですが、 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 なんてどうでしょう。
- nishi6
- ベストアンサー率67% (869/1280)
ユーザー定義関数を作ってみました。半角文字にして、指定した文字を削除します。 電話番号の先頭はゼロが多いので、下の結果は文字にしてあります。(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