PR

Accessによるデータ処理 半角全角/大文字小文字の変換 

全般

Accessでデータ処理をする際に、全角文字を半角文字に変換したり、ひらがなをカタカナに変換したりする機会があります。今回は、クエリを用いた効率的なデータ処理方法を紹介します。

スポンサーリンク

文字列の変換 StrConv関数

Accessには、文字列を目的に合わせて変換するための関数としてStrConv関数があります。以下にその内容を示します。

StrConv ( string, conversion [, LCID ] )

引数 説明
string 必須。 変換される文字列式を指定します。
conversion 必須。 整数データ型の値を指定します。 実行する変換のタイプを指定する列挙型の値です。
LCID 省略可能です。 LocaleID (システムロケールとは異なる場合)。 (既定値はシステム LocaleID)

■conversion引数の内容

定数 内容
vbUpperCase 1 文字列を大文字に変換します
vbLowerCase  2 文字列を小文字に変換します
vbProperCase 3 文字列の各単語の先頭の文字を大文字に変換します
vbWide 4 文字列内の半角文字を全角文字に変換します
vbNarrow 8 文字列内の全角文字を半角文字に変換します
vbKatakana* 16 文字列内のひらがなをカタカナに変換します
vbHiragana** 32 文字列内のカタカナをひらがなに変換します

* 東アジア ロケールに適用されます。
** 日本にのみ適用されます。

StrConv関数の具体的な使い方

ここからは、StrConv関数の具体的な使い方を見ていきましょう。
今回はサンプルテーブルとして次の条件で作成をし、サンプルデータを登録します。

■サンプルテーブルの構造

フィールド名 データ型
ID オートナンバー型
氏名 短いテキスト
年齢 数値型
全角フリガナ 短いテキスト
半角フリガナ 短いテキスト
従業員コード 短いテキスト

■サンプルデータ

ID 氏名 年齢 全角フリガナ 半角フリガナ 従業員コード
1 鈴木太郎 24 スズキ タロウ スズキ タロウ ABZabz
2 佐藤次郎 39 サトウ ジロウ サトウ ジロウ CDYcdy
3 Smith.W 42 Smith.W Smith.W EFXefx

データ処理用のクエリ作成と実行

さて、ここまででサンプルデータを作成してきましたが、ここからは実際に文字列がどのように変換できるかを、クエリを用いて見ていきましょう。クエリを作成し、クエリツールのデザインタブから、サンプルテーブルを選択し、【フィールド】項目に必要な事項を記載していきます。今回は、以下のようにフィールドを設定します。なお、第2引数は上述のconversion引数の内、値を適用しています。

・全角フリガナ: サンプルテーブルのフィールドを選択
・半角フリガナ: サンプルテーブルのフィールドを選択
・従業員コード: サンプルテーブルのフィールドを選択
・大文字変換: StrConv([従業員コード],1): 従業員コードを全て大文字で表記
・小文字変換: StrConv([従業員コード],2): 従業員コードを全て小文字で表記
・全角変換: StrConv([半角フリガナ],4): 半角フリガナを全て全角で表記
・半角変換: StrConv([全角フリガナ],8): 全角フリガナを全て半角で表記
・ひらがな変換: StrConv([全角フリガナ],32): カタカナをひらがなで表記

実際に作成したクエリを図1に示します。

図1 文字列変換クエリ
図2 文字列の変換結果

図2には、文字列を変換した結果を示しています。
いかがでしょうか。小文字の文字列は大文字に、大文字の文字列は小文字に、半角は全角に、逆に全角は半角に、そしてカタカナはひらがなにそれぞれ変換できています。

まとめ

今回は、文字列の変換方法としてStrConv関数について紹介をしました。Accessでは、基本となる情報のみを登録し、類似データについては、StrConv関数等を用いて必要な情報に加工することで、データベースのスリム化を図りつつ、必要な情報を瞬時に処理することも可能です。著者も、データベース情報をクエリと備え付けの関数を用いて処理し、業務効率の改善を図っていますので、是非皆さんにも活用していただければと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました