• 締切済み

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

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

みんなの回答

  • tom777
  • ベストアンサー率77% (14/18)
回答No.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 なんてどうでしょう。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

ユーザー定義関数を作ってみました。半角文字にして、指定した文字を削除します。 電話番号の先頭はゼロが多いので、下の結果は文字にしてあります。(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

関連するQ&A

  • セル内の数値とハイフォンを半角に統一する数式は?

    同列のセル内に電話番号072-849-7826など全角と半角の数値とハイフォンが入り乱れて入力されている場合に(1)半角で統一したい。又(2)全角で統一したい。数式?を教えて!

  • Access2002での氏名の変換?

    Access初心者です。 外部データをインポートしたのですが、氏名の記載が ひらがな・カタカナ混じりに全角・半角も混じってます。 最終的にカタカナ・半角に修正したいのです。 そこで 1.ひらがな⇒カタカナ変換 あるいは 2.全角⇒半角変換 クエリーウェザードでの方法は分るのですが・・・? 例えば1.のクエリーを保存してから、そのカタカナ変換したものを元に全角を半角に変換したいのですが、上手くいきません・・・? ご教示ください。

  • エクセルの入力形式を指定する

    エクセルで、簡単な業務システムの構築をしています。 直接DBの該当レコードに担当者がデータを入力するスタンスをとっているのですが、一つのセルにおいて半角と全角を混在して入力しています。 例えば、郵便番号と電話番号なのですが、999-9999、999-999-9999のように半角の数字とハイフンのみを入力させそれ以外の全角文字等が入力されないようにすることは可能なのでしょうか?

  • エクセルのセル内の数値(文字列)の正しい表示方法は?

    長いですが、最初から説明させてください。DM発送用の宛名ラベルを印刷する為、アクセス2000で作った顧客管理のデータをテキストファイルにし、エクセル2000から開きました。エクセルから開くときに、テキストファイルウィザードが出ます。その該当部分にチェックを入れてOKを押すと、拡張子がテキストですがエクセルに入力したような画面になります。その中で、郵便番号と住所のセル列についてですが、頭が0で始まる郵便番号の0が全部消えて、ハイフンも出ません。(ウィザードで表示されているときにはきちんと頭がゼロのものも表示されていました)また、丁目や番地の部分が、全然関係のない何桁もある数値の表示に変わってしまいました。アクセスに入力したときにはフォームに入力でしたので郵便番号のハイフンは不要でした。また丁目や番地も半角数字でハイフンで繋いでいました。今までは外注に出していましたが、今後は自社でラベルを印刷してDMを作る必要がでてきました。今変わってしまった部分を作成しなおそうとしています。でも、何千件もあるものを直すのは気が遠くなるのですが、何とか頭のゼロが消えているものやハイフンを一発挿入する技はありませんか。また、ハイフンの抜けた番地の、桁数が多い数字になってしまったところは改善できませんか。丁目や番地もどうやら全角で入れているものについては変化していないようです。半角で入力したものが全く関係のない桁数の多い数字で表示されています。うまく説明ができずにもどかしいです。どなたか詳しい方、ご指導願えたらとても助かります。よろしくおねがいいたします。質問するにあたり、こちらの情報が不備な点はご指摘いただければ答えられるものはお答えします。

  • データを書き込む際、全角数値を半角で登録するには

    ASPにおいてSQL-SERVERにデータを書き込む際に全角数値だったら半角数値になおして書き込むことは可能でしょうか?? 例:1234→1234 もし可能ならばご教授お願いします!!!よろしくお願いします!!! ちなみに理由はHTMLフォーム上で電話番号等数値入力のコントロールで全角で入力してしまうことがある為、対応として全角を半角で登録ってことになりました・・・。現在はバイト数で半角全角チェックを行っていますが、このチェックはなくすことになります。。。だれか助けてください。。。IMEの制御は行っていません。サーバはWINDOWS2000、処理ブラウザはIE、DBはSQL-SERVER2000を使用しています。

  • access2000 クエリで文字列を数値に変換

    access2000 クエリで文字列を数値に変換 商品の管理DBをaccessで入力し、テーブルをexcelにエクスポートして並び替えやその他の編集をしています。 テーブルに「数量」というフィールドがあり、数字入力が主ですが、商品によっては「無制限」や「-」のように文字列を入力しなければならない為、「数量」は「数値型」ではなく「テキスト型」になっています。 excelへエクスポートした時に、「10」などは数値として認識させ、「無制限」などはそのままの文字列にしたいです。 クエリの式に「Val([数量])」としてみたところ、「10」は数値として変換されましたが、数値ではない文字列は全て「0」になりました。 また、「15,000」は「15」になりました。(カンマが文字列な為) これを 「10」→「10」(数値) 「無制限」→「無制限」(文字列) 「15,000」→「15000」(数値) にするような関数はありませんでしょうか。 excel2007のエラー処理(セルを選択した時に出る「!」で「数値に変換する」)と同じような挙動にしたいです。 宜しくお願いします。

  • ACCESSの数値入力について

    テーブルのDBに数値「0001、0002、0003…」と入力させたいのですが、テキスト型ではなく、数値型として入力するにはどうしたらいいですか??

  • アクセスで住所録をつくりたいのですが...

    テーブルで住所録をつくり、はがきウィザードで宛名を印刷(縦)したいのですが、住所の番地がうまくいきません。 おおよその見当はついています。例:6-3-10の数字を全角、ハイフンを半角にすれば、縦にうまくなります。 そこで、誰でも入力しやすいように、定型入力で!\99"-"99\-99 としたところ、数字が半角しか入力できません。IME入力モードを全角英数字にしてもダメです。 何かいい方法はありませんか? また、階を表すFもひらがな入力だとダメで、全角英数字だと縦になります。 宜しくご回答下さい。

  • アクセスで住所録をつくっています

    テーブルで住所録をつくり、はがきウィザードで宛名を印刷(縦)したいのですが、住所の番地がうまくいきません。 おおよその見当はついています。例:6-3-10の数字を全角、ハイフンを半角にすれば、縦にうまくなります。 そこで、誰でも入力しやすいように、定型入力で!\99"-"99\-99 としたところ、数字が半角しか入力できません。IME入力モードを全角英数字にしてもダメです。 何かいい方法はありませんか? また、階を表すFもひらがな入力だとダメで、全角英数字だと縦になります。 宜しくご回答下さい。

  • EXCSL ASC関数 数値のみ変換

    WindowsXP EXCEL2007を使っています 住所録の番地が全角・半角が混在しているので半角に統一するため ASC関数を使いました 当然英文字・カタカナも半角になってしまいます 数字だけを半角にすることはできないでしょうか

専門家に質問してみよう