11/09/2017

Access。フリガナを全角カタカナ表示から、ひらがな表示にするには?【StrConv】

Access。フリガナを全角カタカナ表示から、ひらがな表示にするには?

<StrConv関数>

Accessで、氏名のフリガナを表示させるには、
テーブル設定のフィールドプロパティを使って、
氏名の入力時にフリガナも入力してくれる、入力支援を設定しておくのですが、
入力後に、全カタカナで表示されているフリガナを、
ひらがなに変換するにはどうしたらいいのでしょうか?

Excelでは、PHONETIC関数を使って、ふりがなを表示させてから、
「ふりがなの表示非表示」にある、ふりがなの設定で、
ひらがなに変える事で、表示を、全角カタカナから、
ひらがなに変更することが出来ますよね。

ではAccessでは、どのようにしたらいいのでしょうか?

まず、次のクエリがあります。

データシートビューで確認してみましょう。

このクエリのシメイフィールドは、全角カタカナで表示されていますね。

これを、ひらがなに変更していきます。

そこで、登場するのが、Accessの関数である。
【StrConv関数】(ストリングコンバート関数)
を使っていきます。

このStrConv関数は、とても使い勝手がいいというか、
守備範囲が広いというか、Excelにも欲しい関数ですね。

というのも、今回は、全角カタカナをひらがなに変更しますが、
StrConv関数だけで、アルファベットを大文字に変換したり、
半角文字を全角文字に変換したりすることが、
この関数一つで設定することが出来るのです。

Excelだと、UPPER関数や、LOWER関数など、
その用途で関数を使い分ける必要があります。

つまりそれだけ多くの関数を知らないといけないのですが、
AccessはStrConv関数だけでOKなのです。

では、クエリを修正していきます。

まずは、データシートビューで確認してみましょう。

ひらがなフィールドは、全角カタカナではなくて、ひらがなで表示されていますね。

今回作成したフィールドは、
ひらがな: StrConv([シメイ],32)

StrConv関数の引数で、32というのがありますが、これはいったい何なのか?

StrConv関数の構造は、StrConv([フィールド名],変換形式)となっていて、
変換形式のコードを使い分ける事によって、
全角カタカナをひらがに変更するようなことが出来ます。

なお、変換形式は、下記のように設定されています。

1 アルファベットを大文字に変換
2 アルファベットを小文字に変換
3 先頭の文字を大文字に変換
4 半角文字を全角文字に変換
8 全角文字を半角文字に変換
16 ひらがなをカタカナに変換
32 カタカナをひらがなに変換

と設定されていますので、
Excelのようにケースごとに関数がことなるのではなく、
変換形式のコードを変えることで、表示を変更することができます。

なお、ひらがなを、半角カタカナにするのには、変換形式を
8+16
とすれば、大丈夫です。

このように、Accessの関数には、Excelと異なる関数がありますので、
覚えておくといいかもしれませんね。