• ベストアンサー

Accessのデータ変換方法

かな漢字、カタカナ、アルファベット、数字の含まれるデータフィールドがあります。 カタカナは全角のままで、アルファベットと数字を半角に変更する方法はありますでしょうか。 データの文字数、カナ→数字などの順は統一性がありません。また、スペースも含まれていますがスペースも削除した状態が望ましいです。 ご存知の方がいましたら教えてください。

質問者が選んだベストアンサー

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

ユーザー定義関数です。 文字を半角にしてみて数字、アルファベット(大文字または小文字)なら、その半角で置き換えています。文字毎にコーディングは不要と思いますが・・・・ Public Function AZaz09_Henkan(moji)   Dim elm As String '1文字   Dim elm_komoji As String '半角に変換   Dim pot As Integer '文字位置   moji = Trim(moji) '空白除去   For pot = 1 To Len(moji)     elm = Mid(moji, pot, 1) '1文字     elm_komoji = StrConv(elm, vbNarrow) '半角文字にする     Select Case Asc(elm_komoji)       Case 48 To 57, 65 To 90, 97 To 122 '0~9,A~Z,a~z         Mid(moji, pot, 1) = elm_komoji     End Select   Next   AZaz09_Henkan = moji End Function

glimlach
質問者

お礼

ありがとうございます。 Function moji(MyStr As String) Mylength = Len(MyStr) For i = 1 To Mylength Mystr_i = Mid(MyStr, i, 1) If Mystr_i Like "[A-Z]" Or Mystr_i Like "[0-9]" Then Mystr_tmp = StrConv(Mystr_i, vbNarrow) Else Mystr_tmp = Mystr_i End If moji = moji & Mystr_tmp Next i End Function の方法をとることになりましたが、ぜひ試してみます。

その他の回答 (3)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

OracleにはREPLACEなる関数があり、 文字の置き換えができてたか、とおもいます。 ACCESSではどうでしょう? A~Z、a~z、0~9なら52回もUPDATE文実行かな? (Upper,Lower使用しても36回、とても大変)

  • noopee
  • ベストアンサー率38% (114/297)
回答No.2

再び。 StrConv関数だと、お望みのようなことは難しいのでは? 複数条件が絡んでいるようですし...。 私もあまり詳しくないですが、私のやっている方法。 ***スペースを削除*** Public Function DelSpaces(st As String) As String Dim i As Long, lg As Long Dim bst As String, c As String st = Trim(st) lg = Len(st) For i = 1 To lg c = Mid(st, i, 1) If c = " " Or c = " " Then Else bst = bst + c End If Next i DelSpaces = bst End Function ***英数字の変換*** Public Function ZenToHan_Num(st As String) As String Dim i As Long, lg As Long Dim bst As String, c As String Dim c1 As String Dim c2 As String st = Trim(st) lg = Len(st) For i = 1 To lg c = Mid(st, i, 1) c1 = "0": c2 = "0" If c = c1 Or c = c2 Then c = c1 Else c1 = "1": c2 = "1" If c = c1 Or c = c2 Then c = c1 英数字…最後まで続く End If bst = bst + c Next i ZenToHan_Num = bst End Function これをクエリの式で呼び出し、変換しています。 参考になれば。

  • noopee
  • ベストアンサー率38% (114/297)
回答No.1

かな漢字はどうするんでしょう? Accessには文字列操作機能はないはずなので、VBAで自分で作るしかありません。 モジュールでAをAに変換するってのをアルファベット・数字ともに1個ずつかいていくしかないのでは?

glimlach
質問者

補足

かな漢字はそのままです。 VBAでStrConv関数を利用するのではないか、というところまでの予想はできているのですが。

関連するQ&A

  • 全角 → 半角 への変換

    いつもお世話になります。 さて標記の件、データの変換で悩んでいます。 ACCESSのデータ(これも外部から取り込みます)中に全角文字が混じっていればその部分を半角に変えたいと思います。 全角文字が数字、ひらがな、カタカナのときは半角カナに出来ましたが、漢字の時に変換できません。 可能であれば間違えていても良いのでヨミガナに、不可なら半角スペース、これも不可なら削除したいです。 WinXP Office2000PROを使用しています。 以上、宜しくお願いいたします。

  • excelで数字を全角から半角にしたい

    excelでA1からZ400までデータがあります。漢字やひらがな、カタカナ、数字、アルファベットなどがたくさんあります。数字が全角と半角がごちゃ混ぜ状態です。どうにかして数字を半角で統一できないでしょうか?具体的には「東1」「東1」がごっちゃになってますので、数字が半角の「東1」に統一したいです。よろしくお願いします。

  • 全角から半角に変換する

    Javaで、文字列の中に全角があれば単純に半角に変換するような処理をしたいです。具体的には、次のような文字列があった場合、以下のように変換したいです。 <変更前> あ亜アアaaAA11%% <変更後> ア亜アアaaAA11%% つまり、以下のようにしたいです ・全角ひらがな→半角カタカナ ・漢字:何もしない ・全角カタカナ→半角カタカナ ・半角カタカナ:何もしない ・半角アルファベット→何もしない ・全角アルファベット→半角アルファベット ・半角数字→何もしない ・全角数字→半角数字 ・半角記号→何もしない ・全角記号→半角記号 上記のように書くと複雑に見えますが、要は基本的に半角に相当する文字がある場合には半角にしたいだけです。Googleで探してみましたが、Javaで標準で上記のような処理を出来るようなメソッドを見つけることができませんでした。このようなメソッドは標準で存在しますでしょうか? 自作する場合、いくつかアプローチがあると考えられますが、最もパフォーマンスを速くしたい場合にはどのような作り方にした方がよいでしょうか。お手数ですが、宜しくお願いします。 <追伸> プレビューで見たら、半角の文字が全角に自動的に変換されてしまいました。。 例文からはわかりにくいかも知れませんが、宜しくお願いします。。

    • ベストアンサー
    • Java
  • ACCESSのデータを変換したい

    できるかどうか分かりませんが、知ってる方みえたら教えて! テーブルに入っているデータがカナと英数ですが、半角と全角の両方のデータがあってこれを統一したいのですが。。。 関数では無理ですよね? 何か良い解決策があれば教えてください。

  • 半角全角について

    数字、アルファベット、カタカナには半角全角がありますがなぜあるのですか?どちらかに統一できないのですか? アルファベットが言語の欧米でも半角全角ってあります?

  • 「無変換」キーを押したとき、「スペース」キーと同じように漢字変換されてしまうのですが・・

    無変換キーを押すと、普通は押す毎に 「ひらがな→全角カタカナ→半角カタカナ」の順に変わると思うのですが、 無変換キーを押しても、スペースキーを押した時と全く同じように 漢字変換されてしまいます。 無変換キーで「ひらがな→全角カタカナ→半角カタカナ」 としか変換できないようにするにはどうしたらいいのでしょうか?

  • ATOKでの変換が上手くできません。

    ATOKでの変換が上手くいかないので、教えてください。 1.ローマ字入力で、仮名や漢字を入力してる最中に、   半角のアルファベットや、英単語を入力したいのです  が、IMEで入力する時のように、Shift+アルファベット   等の、キー操作で入力することは出来るでしょうか? 2.同じく、仮名や漢字を入力している最中に、カタカナ   全角を入力(1文字だけ)したいのですが、変換をし   ても、半角しか候補にでてきません。 いちいち、下のバー(名称が浮かびません・・・)で、 変更するのが、面倒なので、どなたか、解決方法を 教えてください。 わかりづらい文章で、申し訳ありませんが、 よろしくお願いいたします。

  • 文字の判定

     こんばんわ。早速ですが、VBにおいて入力、又は取り込んできたデータの文字(1文字)が全角文字(漢字・ひらがな・全角スペース等)か半角文字(半角カタカナ・半角スペース等)かをみわける関数ってあるのでしょうか?

  • アルファベットの変換がおかしい?

    最近XPのデスクトップに買い換えました。 そこで、変換方法についてなのですが 漢字や数字などはスペースキーで変換できるのですが アルファベットのみ全角→半角等に変換できずスペースが入力されます。 たとえば上のXPだとはじめ全角で表示されるとします。 これを半角にしたいとき普通はスペースキーを押せば候補がいくつか出ますが今はスペースが入るだけでXPという文字自体は変化しません。 おそらくIMEの設定でどうにかなるような気がするのですがどうでしょう?

  • エクセル 全角から半角に変換 マクロ

    エクセルでシートの上すべてのカタカナ、ひらがな、漢字、スペースを全角から半角に変換するマクロを教えてください。 アルファベットは残したいです。

専門家に質問してみよう