【Access】Replace関数を使ってデータを置き換える方法

 

アクセス担当のまみです。

 

ある一定の法則に基づいてデータを置き換えたい時があったりします。

大量のデータをどうやって置き換えるのって思うだけで気がめいってしまいそう・・・

 

そんな時に一度に置き換えができたらとっても助かりますね。

クエリでReplace関数を利用すれば、簡単に置き換えできちゃいます。

 

今回は、Replace関数についてお伝えしますね。

 

作業前にはバックアップを

 

作業前にバックアップを取ることをおススメします。

 

(はてな君)
バックアップ取らずに作業したら間違えちゃって最初からになった・・・データが少なかったからよかったけど。

 

(あいちゃん)
データ量が多かったらって考えたらぞっとするでしょ。普段からバックアップを取るくせをつけておこうね!

 

バックアップがあればすぐに元に戻せるけど、バックアップがないと元に戻すのはとっても大変です。

ファイルごとバックアップを取る方法もあるけど、こういう時に私がよく使うのはテーブルのバックアップです。

 

Accessテーブルのバックアップをする方法

2018年11月18日

 

Replace関数

 

構文
Replace( expression, find, replace [, start ] [, count ] [, compare ] )

最初の3つまでは必須、[ ]で囲ってある残りの3つは省略可能です。

 

引数 説明
expression 置き換える前の文字列
(対象がテーブルならフィールド名)
find 検索する文字列
replace 置換する文字列
start 検索開始位置の指定
(省略すると1文字目から検索)
count 置換する回数
(省略するとすべての文字を置換)
compare 比較モード
(省略するとクエリやフォームでは「2」VBAでは「-1」が指定される)
※下記参照

※expression, find, replaceのいずれかにNullがあるとエラーになる。

 

比較モード

説明
-1 Option Cpmpareステートメントの設定のとおり
設定がない場合はバイナリモードで比較
0 バイナリーモードで比較
(全角半角、大文字小文字、ひらがなカタカナを区別する)
1 テキストモードで比較
(全角半角、大文字小文字、ひらがなカタカナを区別する)
2 Accsessの設定のとおり
(既定値はテキストモード)

 

 

(はてな君)
なんだか難しそう。

 

(あいちゃん)
この表だけ見るとそう感じるかな。

 

1種類のデータの置き換え

 

使用するテーブル

 

このテーブルの部署名が「総務部」から「総務経理部」に変わったって想定で置き換えをしてみましょう。

 

使用例
Replace([部署名],”総務部”,”総務経理部”)

 

クエリを作成し、フィールドは「部署名」を選択しておきます。

 

リボンの「クエリツール」の①「デザイン」タブから②「更新」を選択し、レコードの更新に③「Replace([部署名],”総務部”,”総務経理部”)」を入力します。

 

 

リボンから「表示」を左クリックしてみましょう。

 

 

 

(はてな君)
これって今から置き換えようとしているデータが表示されたの?総務部だけが表示されるんじゃないんだね。

 

(あいちゃん)
そう。全レコードが表示されるよ。置き換わるのは総務部だけだけどね。いきなり実行してもいいけど、間違ってたら元に戻さないといけないからなるべく慎重にね!

 

(はてな君)
あっバックアップ・・・取っておきます。

 

(あいちゃん)
じゃぁ実行してみましょう!

 

 

(はてな君)
ちゃんと置き換わったよ!このデータって総務部だけだったけど、他にも部署名が変わるときにも置き換えできる?

 

(あいちゃん)
構文がちょっと長くなるけどできるよ!
さっきデータを置き換えちゃったので、総務部に戻してね!バックアップを使ってもいいね!でも実は置き換えでもできるんだ。

 

(はてな君)
え~どの方法で戻そうかなぁ。やっぱり置き換えかなぁ。

 

使用例
Replace([部署名],”経理部”,””)

 

(はてな君)
あっなるほど、経理部が空白に置き換えらえるんだ。

 

 

(はてな君)
元に戻ったよ~。

 

 

2種類以上のデータの置き換え

 

「総務部」が「総務経理部」に「営業部」が「営業推進課」に変わったとして置き換えてみましょう。

 

作成方法は先程と同じでレコードの更新に「Replace(Replace([部署名],”総務部”,”総務経理部”),”営業部”,”営業推進課”)」を入力します。

 

(はてな君)
なんか面白いね。Replaceの中にReplaceがある?

 

(あいちゃん)
面白いでしょ。こういうのを入れ子とかネストって呼ぶんだよ。

 

(はてな君)
ふ~ん。

 

(あいちゃん)
じゃあまずは「表示」を左クリックで確認してね!

 

 

(はてな君)
ちゃんと件数もあってるよ!

 

(あいちゃん)
確認OKだね。じゃぁ実行してみましょう!

 

 

(はてな君)
ちゃんと置き換わったよ!

 

 

3つ以上置き換え対象があれば公式が複雑になるけど、どんどん入れ子にすれば一気に置き換えができます!

 

まとめ

 

Replace関数ってデータを置き換えたい時に便利ですね。

(株)から株式会社に置き換えたいとか他にも色々あると思います。

 

ぜひ活用してくださいね!