AccessのReplace関数についてお探しですね。

広告

Accessで文字列を置き換える方法|Replace関数の使い方を初心者向けに解説

Accessで顧客データや商品データを管理していると、「電話番号のハイフンを消したい」「余計なスペースや特定の文字を一気に別の文字に変えたい」といった場面がよくありますよね。

Excelなら「検索と置換」機能でパパッとできるのですが、Accessの場合はクエリや関数を使う必要があって、最初はちょっと難しく感じるかもしれません。

この記事では、Accessの「Replace関数」を使った文字列の置き換え方について、基本的な書き方から、ハイフンなどの特定の文字を削除するコツ、さらには実務でつまずきやすいエラーの対処法まで、わかりやすく解説していきます。

AccessのReplace関数とは?文字列を置き換える基本の書き方

Accessで文字列を置き換えたいときに活躍するのが「Replace関数」です。

この関数を使えば、指定したフィールドの中から特定の文字列を見つけて、別の文字列に自動で変えることができます。

まずは、Replace関数がどんなルールで動いているのか、基本的な書き方から見ていきましょう。

Replace関数は、カッコの中に3つの情報をカンマで区切って入れることで動きます。

具体的には、「Replace(置き換えたい文字列が入っている場所, 探す文字列, 新しい文字列)」という順番で書きます。

たとえば、商品名フィールドに入っている「りんご」という言葉を「アップル」に変えたいときは、「Replace([商品名], “りんご”, “アップル”)」と書けばOKです。

シンプルな書き方で文字列を変換できるのが便利なポイントです。

Replace関数は、Accessの「選択クエリ」の中で新しい計算用のフィールドを作るときによく使われます。

元のテーブルのデータをいきなり変更する前に、まずは選択クエリのフィールド行に「新しい項目名: Replace([元のフィールド名], “探す文字”, “置き換える文字”)」と入力して、データシートビューで結果を確認するのが安全なやり方です。

この関数をマスターすれば、たくさんのデータの中から表記のバラつきを統一したり、いらない文字列を一気に書き換えたりする作業がグッと楽になりますよ。

特定の文字(ハイフンなど)を削除するReplace関数の使い方

データ整理の現場でとても多い要望が、「郵便番号や電話番号に入っているハイフン(-)を消して、数字だけの状態にしたい」というものです。

実は、Replace関数には「削除」という専用の機能はないのですが、「見つけた文字列を、何もない状態に置き換える」という方法を使えば、実質的に特定の文字を削除することができます。

特定の文字を削除するには、3つ目の引数である「置き換える文字列」のところに「””(ダブルクォーテーション2つ)」を指定します。

これはプログラミングの世界で「空文字列」と呼ばれるもので、文字が何もない状態を表しています。

つまり、「Replace([電話番号], “-“, “”)」と書けば、電話番号フィールドの中にあるハイフンを見つけて、それを「何もない状態」に変換するので、結果としてハイフンだけがきれいに消えるという仕組みです。

このテクニックはハイフンだけでなく、氏名の苗字と名前の間に入っている余計なスペースを削除したいときにも使えます。

全角スペースを消したいなら「Replace([氏名], “ ”, “”)」、半角スペースなら「Replace([氏名], ” “, “”)」と指定するだけです。

システムを移行するときなどで、データをエクスポートする前に不要な記号やスペースを取り除いて純粋な文字列データにしておくことはよくあるので、この「空文字列への置き換えで削除する方法」はぜひ覚えておきたいテクニックです。

【実務編】更新クエリを使ってテーブルのデータを一括で置き換え・削除する方法

選択クエリの中でReplace関数を使うと、画面上では置き換わった状態のデータを確認できますが、元のテーブルにあるデータ自体が書き換わったわけではありません。

もし、テーブルに保存されている実際のデータを直接、一括で置き換えたり削除したりしたい場合は、「更新クエリ」という機能とReplace関数を組み合わせて実行する必要があります。

更新クエリを使ってデータを一括で書き換える手順は、次のとおりです。

この作業を行うと元のデータに戻せなくなるので、実行する前には必ずテーブルのバックアップ(コピー)を取っておくことを強くおすすめします。

* クエリデザインを開いて、対象になるテーブルを追加する
* リボンの「クエリの種類」から「更新」をクリックして、更新クエリモードに切り替える
* デザイングリッド(画面下の表)に、置き換えたいフィールドをドラッグして配置する
* そのフィールドの「レコードの更新」行に、Replace関数の式(例:`Replace([電話番号], “-“, “”)`)を入力する
* リボンの「実行」ボタン(赤いビックリマークのアイコン)をクリックする

この手順を実行すると、「○件のレコードを更新します」という確認メッセージが表示されるので、「はい」を選択すればテーブル内のデータが一瞬で書き換わります。

数万件以上のレコードがあるデータベースでも、手作業で1つずつ修正する手間が省けるので、業務効率が大幅にアップします。

定期的に外部からインポートするCSVデータの形を整えるときなど、定型業務の中にこの更新クエリを組み込んでおくと、とても便利ですよ。

エラーを防ぐ!Null値を含むフィールドでの注意点とNz関数の活用

Replace関数はとても便利なのですが、実務でデータを処理していると「エラーが出てクエリが実行できない」「一部のデータが空白になってしまう」といったトラブルに遭遇することがあります。

その最大の原因は、対象となるフィールドの中に「Null(データが全く入力されていない状態)」が含まれているケースです。

Replace関数は、対象のデータがNullだった場合、正しく処理できずにエラーを返してしまうという弱点があります。

この問題を回避するために必須なのが、「Nz関数」との組み合わせです。

Nz関数とは、対象のデータがNullだった場合に、それを指定した別の値(今回は空文字列)に変換してくれる関数です。

Replace関数を実行する前に、まずNz関数を使ってフィールド内のNull値を安全な状態にしておくことで、エラーで処理が止まってしまう事態を防げます。

具体的な書き方としては、Replace関数の中にNz関数を入れ込む(ネストする)形になります。

たとえば、「`Replace(Nz([電話番号], “”), “-“, “”)`」のように書きます。

こうすることで、Accessはまず内側のNz関数で「電話番号フィールドがNullなら空文字列として扱う」という処理をして、その安全なデータに対して外側のReplace関数が「ハイフンを削除する」という処理を実行します。

データベースには入力漏れや空欄がつきものなので、Replace関数を使うときは常にNz関数とセットで書く癖をつけておくと、予期せぬエラーに悩まされることなく、安定したデータ整理ができるようになりますよ。

広告