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