Accessで、1つの項目に複数の置換えを1度でするには?
Access2003で、1つの項目に複数の置換えを1で実行したいのですが、どうすればいいのでしょうか?
編集メニューの『置換』を使うのではなく、クエリやマクロで実行したいのです。
どんどん溜めているデータを定期的に決まった文字を1度に変換できるようにしたいのです。
例えば、[会社名]フィールドに入っている
「株式会社」 を 「(株)」 に、
「有限会社」 を 「(有)」 に、
「法人会社」 を 「(法)」 に、…続く…、などと置換えしたいのです。
更新クエリで、『Replace([会社名],"株式会社","(株)")』 と1つなら置換えできたのですが、複数置換えしたい場合は、同様のクエリをその数だけ作ってマクロで続けて実行させるという方法しかないのでしょうか?
できればクエリを増やしたくないので、他にいい方法がありましたら、教えて下さい。
投稿日時 - 2008-10-12 00:47:50
同一のReplace関数のネストで、下記は2つの例ですが、3つまでぐらいなら、式が長くなるが辛抱できるのでは。
Replace(Replace([学校],"北小学校","北新小学校"),"中央小学校","中央北小学校")
生徒テーブルの学校フィールドで
A生徒の学校フィールド 北小学校ー>北新小学校
B生徒の学校フィールド 中央小学校ーー>中央北小学校
になったフィールドを作れました。
投稿日時 - 2008-10-12 10:10:50
お礼
こんな、ネストの仕方があったんですね!!勉強になりました。
これなら当初思っていたら、クエリかマクロだけ使って(クエリもあまり増やさず)なんとかなりますね。
どうもありがとうございました。
投稿日時 - 2008-10-14 00:44:08
2人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(1件中 1~1件目)
一介のアマチュアですので、いい方法かどうか分かりませんが、
標準モジュールにユーザー関数を記述します。
Function myReplace(target As String)
Dim buf As String
buf = target
buf = Replace(buf, "株式会社", "(株)")
buf = Replace(buf, "有限会社", "(有)")
'以下必要によりズラズラと記述
myReplace = buf
End Function
更新クエリで、
会社名フィールドの、レコードの更新に、myreplace([会社名])と記述して実行。
で、一応一発でできると思います。
投稿日時 - 2008-10-12 01:32:08
できれば、クエリかマクロだけ使ってなんとかなれば。。。と思っていたのですが、
このようにユーザー関数を作っておけば、一発でできますね!!
どうもありがとうございました。
投稿日時 - 2008-10-14 00:41:48