許せない心理テスト

Access2003で、1つの項目に複数の置換えを1で実行したいのですが、どうすればいいのでしょうか?
編集メニューの『置換』を使うのではなく、クエリやマクロで実行したいのです。

どんどん溜めているデータを定期的に決まった文字を1度に変換できるようにしたいのです。

例えば、[会社名]フィールドに入っている
 「株式会社」 を 「(株)」 に、
 「有限会社」 を 「(有)」 に、
 「法人会社」 を 「(法)」 に、…続く…、などと置換えしたいのです。

更新クエリで、『Replace([会社名],"株式会社","(株)")』 と1つなら置換えできたのですが、複数置換えしたい場合は、同様のクエリをその数だけ作ってマクロで続けて実行させるという方法しかないのでしょうか?

できればクエリを増やしたくないので、他にいい方法がありましたら、教えて下さい。

A 回答 (2件)

同一のReplace関数のネストで、下記は2つの例ですが、3つまでぐらいなら、式が長くなるが辛抱できるのでは。


Replace(Replace([学校],"北小学校","北新小学校"),"中央小学校","中央北小学校")
生徒テーブルの学校フィールドで
A生徒の学校フィールド  北小学校ー>北新小学校
B生徒の学校フィールド  中央小学校ーー>中央北小学校
になったフィールドを作れました。
    • good
    • 11
この回答へのお礼

こんな、ネストの仕方があったんですね!!勉強になりました。
これなら当初思っていたら、クエリかマクロだけ使って(クエリもあまり増やさず)なんとかなりますね。
どうもありがとうございました。

お礼日時:2008/10/14 00:44

一介のアマチュアですので、いい方法かどうか分かりませんが、


標準モジュールにユーザー関数を記述します。
Function myReplace(target As String)
Dim buf As String

buf = target
buf = Replace(buf, "株式会社", "(株)")
buf = Replace(buf, "有限会社", "(有)")
'以下必要によりズラズラと記述
myReplace = buf
End Function

更新クエリで、
会社名フィールドの、レコードの更新に、myreplace([会社名])と記述して実行。
で、一応一発でできると思います。
    • good
    • 10
この回答へのお礼

できれば、クエリかマクロだけ使ってなんとかなれば。。。と思っていたのですが、
このようにユーザー関数を作っておけば、一発でできますね!!
どうもありがとうございました。

お礼日時:2008/10/14 00:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A