アクセスの知識

アクセスで電話番号や郵便番号のハイフンを削除する


「電話番号」や「郵便番号」といった項目は、ハイフン付きで入力されていることがあります。

アクセスのテーブルにデータを登録するだけならハイフンがあっても問題ないのですが、登録されたデータの中から「電話番号」や「郵便番号」で検索を行う際には、ハイフンがない状態で検索を行いたいですよね。

そこで今回は

・アクセスのテーブルに登録済のデータからハイフンを削除する方法
・フォームのテキストボックスに入力するタイミングでハイフンを除外する方法

この2つの手順を解説します。

この仕組みが理解できれば、会社名から「株式会社」を削除したり、ハイフン以外の文字列も自由に制御できるようになります。

非常に簡単なので、この機会にぜひマスターしておきましょう!

Replace関数を使用してハイフンを削除する

エクセルを使い慣れている人でしたら、ハイフンの除外は「SUBSTITUTE関数」が思いつくかも知れませんね!

SUBSTITUTE関数

SUBSTITUTE(文字列,検索文字列,置換文字列)


ですがアクセスの関数には「SUBSTITUTE」が存在しません。
アクセスで電話番号からハイフンを削除する時は「Replace関数」を使用するのが正解です。

Replace関数

Replace(文字列,検索文字列,置換文字列)

では実際に、「Replace関数」を使ってハイフン付きの電話番号を保持している「顧客TBL」よりハイフンを除外してみましょう。

顧客TBL(ハイフンあり)

ハイフンを削除するクエリを作成


クエリのフィールドに「電話番号(ハイフン削除)」という項目を定義。
Replace関数で、電話番号のハイフンを除外しています。

クエリ実行結果


電話番号の場合、ハイフンが入力される場所はさまざまですが、Replace関数ならどの位置のハイフンでも除外することが可能となります。

ただし「電話番号」が必ず入力されているとは限りません。
試しに顧客テーブルより電話番号を削除して、再度クエリを実行してみます。

電話番号が未入力の状態だと、Replace関数で対象の文字列が見つけることができず、エラーと表示されてしまいます。

これを回避するためには、NZ関数を利用します。

NZ関数

Nz(データ, Nullの代替値)

データがNull値でない場合はデータをそのまま返し、Null値の場合はNullの代替値を返します。
※Nullとは、その項目に何も設定されていない、長さを持たない文字列のことです。

クエリのReplace関数を、以下のように修正して実行してみます。

電話番号が空白の場合でもエラーとならずにクエリが実行できました。

ハイフンを削除する項目が未入力の可能性がある場合は、Replace関数とNZ関数を組み合わせるようにしましょう。

テキストボックスに入力されたハイフンを削除する

アクセスで登録用のフォームを作成している場合は、データを登録する前にハイフンを除外することも可能です。

「電話番号1」というテキストボックスから他のテキストボックスにカーソルが移動するタイミングで、ハイフンを削除しています。

これはテキストボックスの「フォーカス喪失イベント」に、次のVBAを記述すれば実現可能です。

テキストボックスのフォーカスが失われるタイミングでハイフンが削除されるので、テーブルに登録されるデータにはハイフンが入りません。

フォームを使っている人は、こちらの方法が便利ですよ!

人気の投稿

1

会員制のサイトにログインするために必要なパスワード、どうやって管理していますか?エクセルやメモ帳などよりも便利で使いやすいソフトを作成しました。

2

自営業の人や個人事業主の人は、顧客管理をエクセルで行っている人も多いかと思います。 エクセルで顧客管理のメリット パソコンにエクセルが入っていれば費用ゼロで使え ...

顧客管理 3

ちょっとした顧客管理や請求書などの作成にエクセルを利用している会社は多いと思います。 特に自営業や個人事業を営んでいる人、まだ顧客数が少ない中小企業などでは、導 ...

-アクセスの知識
-,

Copyright© ビジツールラボ , 2020 All Rights Reserved.