OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Access2000のテキスト型から数値型への変換

  • 暇なときにでも
  • 質問No.114579
  • 閲覧数161
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 44% (4/9)

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

回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

ユーザー定義関数を作ってみました。半角文字にして、指定した文字を削除します。 電話番号の先頭はゼロが多いので、下の結果は文字にしてあります。(03)123-4567は031234567 になります。 '半角の数値のみにする関数 Public Function Str2Numeric(Moji As String) As String   Dim L As Integer ...続きを読む
ユーザー定義関数を作ってみました。半角文字にして、指定した文字を削除します。
電話番号の先頭はゼロが多いので、下の結果は文字にしてあります。(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

  • 回答No.2
レベル7

ベストアンサー率 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, v ...続きを読む
ユーザ定義関数を作るのは同じですが、
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

なんてどうでしょう。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ