全角文字と半角文字の間の変換にはStrConv関数を用いますが、カナ・英字・数字を区別して変換することができず、すべて一括して変換されます。
そこで、その他の関数により全角数字だけを半角数字に変換してみます。
このようなテーブルを用います。
「出来事」列に全角カナ・英字・数字が混在していますのでこれを変換してみます。
Replace関数による方法
変換の対象が10種類しかないのだからReplace関数をネストしようという方法です。単純ですが安全確実です。
クエリデザインで次のような列を設けます。
数字のみ半角: Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace([出来事],"0","0"),"1","1"),"2","2"),"3","3"),"4","4"),"5","5"),"6","6"),"7","7"),"8","8"),"9","9")
データシートビューです。
Format関数等による方法
各種関数の組み合わせで実現する方法です。
式は幾分短くなりますが複雑なうえ、文字列が長い(57文字以上)時にエラーとなってしまうため実用性は低いです;_ _)
クエリデザインです。
次のような列を設けます。
数字のみ半角: Eval(Replace(Replace(Format([出来事],Replace(String(Len([出来事]),"&"),"&","{&}")),"{","Format('"),"}","')&") & "''")
簡単に言って1文字ずつFormat関数で囲んで評価(第2引数なし。このとき全角数字のみ半角になります)しています。
データシートビューです。