• ベストアンサー

Access リストから文字の置換(Replace)  

Accessで特定の文字を置き換えたいです。 ただ、置換するだけなら、Replace([商品名],"ⅰ","1")でいいような気がしますが、 置換したい文字が複数あり 今後も増えていくのでテーブルでリストを作成しました。 元の文字 置換文字 ⅰ     1 ⅱ     2 I     A II     B 元の文字を、置換文字に置き換えたいです。 また、商品名は、 I たばこ II 文房具 になっているものや、 商品券ⅰ、ビール券ⅱ と言うのがあるので、置換文字の入る場所はバラバラです。 質問がわかりにくくてすみません。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • iwaiwaiwa
  • ベストアンサー率18% (25/137)
回答No.1

Accessのテーブル内の文字列を置き換えたいということ でしょうか? 変更リストが例に挙げられているだけなら、Accessの置換機能 でも十分だと思います。 VBAでやるにしても: Replace([商品名],"","1") Replace([商品名],"","2") … とある分だけ追加して行けば済むことではないでしょうか? もちろん、何千個もあるのなら、配列に読み込ませて処理を する、という方法もありますが。 もう少し情報が欲しいです。

d-loop
質問者

補足

アドバイスありがとうございます。 置換したいのは、Accessのテーブル内の文字列です。 ただ、私よりもAccess初心者も触るので、テーブルはフォームで簡単に表示させ、 新たに出てきた、置換文字を入力できるようにしておき、ボタンをクリックするだけで、置換出来るようにしたいのです。 文字は50個以上あるので、検索して置換だと、ちょっと厳しいです。 以上、よろしくおねがいいたします。

その他の回答 (1)

  • iwaiwaiwa
  • ベストアンサー率18% (25/137)
回答No.2

#1です。 そういうことでしたら、Access VBAを使って フォームを作るしかないですね。 慣れたプログラマなら、そんなに難しいことではない、 と言うより簡単ですが、VBAができない人だと勉強から 始めないといけません。 デザインパターンとか色々考えられるので、一概に これが答えだというものはないです。

d-loop
質問者

補足

クエリでは、出来ないということですね。 フォームでクリックしたら、このクエリが流れる。という、構文くらいなら、わかるのですが、クエリでリストから置換作業をする事が、出来なくて困ってます。 でも、もうリストは諦め、大量でもiwaiwaiwaⅰさんの言われるように1つ1つで作成しようと思いました。 そこでまた別の問題が出てきました。 商品名を置換したいのですが、 I たばこ II 文房具 (1) 工具 (2) 雑貨 これの、Iと(1)を1に置換し IIと(2)を2に置換したいです。 1:1で置換する、式は作成出来たのですが、1:2で置換する式はどうしたらいいのでしょうか? 1:1で作成した、SQLは下記のようになっています。 UPDATE [★商品テーブル] SET [★商品テーブル].商品名= Replace([商品名],"(1)","1") WHERE ((([★商品テーブル].商品名) Like "*(1)*")); お手数ですが、わかりましたら、お力貸してください。

関連するQ&A