Accessで郵便番号の情報を取得しデータを管理する際に、ハイフン「-」の取り扱いで処理が煩雑になることがあります。特に、ハイフンは半角文字なのか、全角文字なのかで文字バイト数が異なりますし、長音符との混同等も見受けられることが多々あります。このため、郵便番号はハイフン無しとしてデータ登録することが、その後の処理を効率良くするために効果的になります。
今回は、Accessに取り込んだ郵便番号情報について、その文字数からハイフンの有無をチェックし、ハイフンがあると判断した場合は消すように、またハイフンがないと判断した場合は、そのままの結果を返す処理をしたいと思います。
サンプルデータ
今回サンプルデータを格納するテーブルの名称は「郵便テーブル」とし、フィールド名に「郵便番号」、データ型を「短いテキスト」とします。
次に、サンプルデータは次のように用意します。
郵便番号 |
311-2204 |
511-0402 |
963-7712 |
6050078 |
0801247 |
651―2275 |
処理プロセス
今回の処理方法は単純にデータの文字数から、8文字であればハイフン有、7文字であればハイフン無とし、この結果からハイフンを消すプロセスとします。
まず、Len関数を用いて郵便番号データの文字数を取得します。次に、結果として「8」が返ればハイフンがあるとし、Left関数とRight関数を用いてハイフンを除く処理をします。なお、Left関数では対象とする文字列の左からN番目までの文字列を取得、Right関数は対象とする文字列の右からN番目までの文字列を取得する関数です。
Left関数、Right関数については、以下の記事もご参照ください。
以上の関数を、クエリを用いて処理するようにします。この際にクエリで条件文を作成するにはIIf関数が活用できます。
まず、サンプルクエリを作成し従来の「郵便番号」フィールドを加え、また結果を返すためのフィールドに次の文字列を追加します。
結果: IIf(Len([郵便番号])=8,Left([郵便番号],3)+Right([郵便番号],4),[郵便番号])
作成したクエリのデザインは図1に示すとおりです。
出力結果
今回作成した郵便番号の処理クエリにより得られたサンプルデータの処理結果を図2に示します。
いかがでしょうか。単純な条件によるデータ処理方法ですが、例えば、半角全角を変換した後に、上記の処理をすることでより効率的なデータ処理をすることもできると考えられます。
まとめ
本記事では、Accessにおけるデータ処理方法として郵便番号のハイフンを削除について紹介しました。今回用いたIIf関数や文字列操作するLeft関数、Right関数は比較的使用頻度が高いものなので、是非覚えておいてください。
スポンサーリンク
コメント