• ベストアンサー
  • すぐに回答を!

テーブルを使った置換

Access2002 Accessでクエリ実行時に特定の文字列を置換したいと思っています。 今までは置換する文字列が1つだけだったので、replace関数を使って直接置換する文字列を書いていたのですが、置換する文字列が今後増えてきそうなのでテーブルで管理したいと思っています。 置換用テーブル 元 ,置換後 000022,002078 000218,002403 000447,002703 クエリは単純な選択クエリなのですが、上記のようなテーブルを使ってクエリ実行時に文字を置換する方法がわかりません。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数233
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1

置換する文字列は項目単位で完全一致しますか。 するなら SELECT iif( isnull(置換用テーブル.置換後), 置換前.前, 置換用テーブル.置換後) FROM 置換前 LEFT JOIN 置換用テーブル ON 置換前.前 = 置換用テーブル.元; でいいかもしれませんね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

見事にできました。 ありがとうございました。

関連するQ&A

  • Accessでの置換

    Access97を使用しています。 置換のマクロ化って出来ますか。 具体的に言うとボタン一つで 「電話番号」のハイフンを消したいのです。 今はテーブルを開いて編集-置換で検索する文字列に 「-」、置換後の文字列に何も入れずにすべて置換しています。 Excelですと「SUBSTITUTE」という関数が一番近いのですが、 Accessでそれに準ずるものってあるのでしょうか? イベントプロシージャでの記述で教えて いただけると一番助かります。

  • マクロで書式ごと置換

    マクロで書式ごと置換 いつもお世話になります。 今回は標記の件についてお伺いしたく質問を投稿させていただきました。 現在、[D5:CN93]に配置している文字列データを記号に置換する作業をおこなっています。置換マクロに関してはreplaceを使用し、今のところ問題なく動いています。作業工程としては、上記の範囲にあるデータの一覧を作成し、どのデータをどのような記号に置き換えたいかの一覧を附します。 例)  [A1](置換したい記号)   [B1](置換したい文字列)      ○          イチゴ      ◆          バナナ    [D5:CN93]置換対象の文字列例    イチゴ,バナナ マクロでは置換したい文字列、置換したい記号の値をreplace関数に与えて、上記の範囲にあるセル1つ1つに置換をかけていく、というものです。 今までは、文字列の書式は問題ではなかったのですが(置換後に一括変換)、上のほうから「イチゴを赤い○、バナナを黄色い◆のように、色をつけられないか」といわれました。 置換ウィザードを試してみたのですが、セル全体の文字列の色が変わってしまいうまくいきませんでした。 またreplaceで色情報も置換する方法もわかりません(無いのかもしれませんが)・・・ そこで「色情報を持たせたまま、文字列の一部を置換」する方法を教えてください。 これまでのデータを使用したいので、データは以下のように並んでいます。  [A1](置換したい記号)   [B1](置換したい文字列)     赤色の○         イチゴ     黄色の◆         バナナ    [D5:CN93]置換対象の文字列   イチゴ,バナナ

  • 置換について

    エクセルで、重要な語句に対して部分的に色付けされた文章が記載されたセルがあるとします。 そのセル内の文字列を、ctrl+FやReplace関数を使って置換をかけた場合、色付けした文字列がすべて黒に変わってしまいます。 置換対象文字列以外は、置換前の状態のまましたいのですが、どなたかその方法についてご存知の方いらっしゃらないでしょうか? ぜひ、ご教授願います。

その他の回答 (1)

  • 回答No.2

更新クエリを使えばいいですね 元で結合するクエリを作り 置換後の文字列で更新するようにします

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • SQL SERVER 2005 にて全テーブルの文字列を置換する方法を

    SQL SERVER 2005 にて全テーブルの文字列を置換する方法を探しています。 ものすごく基礎的なことでしたら申し訳ございません。 SQL SERVER 2005で作成したDBがあるのですが、この中の全てのテーブル内を検索し、 「AAA」という文字列を「BBB」に置換したいと考えています。 上記は例えですが、とにかく全てのテーブル内の全ての文字列を検索し、置換できる方法は無いでしょうか。 どうかご教示のほど、よろしくお願いいたします。

  • VBA XML の置換方法

    XMLの特定の文字列を書き変えたいのですが その文字の場所を特定して Replace (文字列、対象文字列、置換文字列、検索開始位置)で置換をすると 検索開始位置の前の文字が消えてしまいます 検索開始位置まえの文字はそのままにして、検索開始位置から後の文字列のみを置換する方法はないでしょうか

    • 締切済み
    • XML
  • VBA 置換文字がみつからない時

    お世話になります。 VBAの文字列の置換で教えてください。 replaceを使用したときに、置換対象の文字がなかったら、 「元の値をそのまま返す」という形なのですが、 置換対象がなかったときは、その旨わかるようにしたいのですが、 方法あるでしょうか? ※毎回replaceの前でfind関数であるかないか、調べないと いけないのでしょうか? 何卒宜しくお願いします。

  • ヒットする初回のみ置換する方法

    あいうえおかきくけこあいうえおあいうえお という文字列があった時、 初回の「あいうえお」のみ空に置換して かきくけこあいうえおあいうえお としたいのですが、str_replace()だと全部置換されてしまいますし、 preg_replace()やmb_ereg_replace()ではうまく置換されません。 対象とする文字列は、実際はHTMLタグやマルチバイトが混じっています。 置換するべき文字列は、全く同様のものが対象文字列内にも必ず含まれています。 preg_replace()やmb_ereg_replace()でも可能なのかもしれませんが、 どうやればいいのか分かりませんでした。 どなたかご教示下さい。

    • ベストアンサー
    • PHP
  • [Access2000] Replace関数がない?

    レコードの特定文字列を置換しようと思い、いろいろ調べたところ、Access2000から「Replace」関数というのが使えるようになったとのこと。 早速クエリーで使用したところ、「式の中に未定義関数 Replace があります」というエラー表示が…。式ビルダの組み込み関数を確認しましたが、Replaceという関数はやはり存在しないようです。 何か間違っているのでしょうか?お力添えいただければ幸いです。

  • エクセル2003での置換について教えてください。

    エクセル2003での置換について教えてください。 こんにちは いつもお世話になっています エクセル2003での置換について教えてください。 特定の文字列以降の文字列を(特定文字列自身も含めて)削除したいのです。  特定の文字列は二つあります。【@】と【変化】です(【】も含みます)。  この二つの文字列はバラバラに出てきます。一方だけがでてくるセル、両方出てくるセル、両方出てこないセル、があるという意味です。  「*」を各特定文字の後ろに付けて、置換機能で削除していますが、二つの文字列に対して別々にやっています。 これを一度で置換して削除する方法を教えてください。  よろしくお願いします。

  • PHP の置換

    テンプレートファイルがあって 複数の特定文字列を置き換えるのに 置換または埋め込もうと思うのですが なんだかうまくいかないので  伝授していただけたらと思い 投稿しました。 要望としては関数に1行いれて 埋め込みまたは置換されたものが 帰ってくる方法を教えてください。

    • 締切済み
    • PHP
  • Excelの置換がうまく出来ません。

     Excelである文字列を検索しようとすると、ちゃんと検索できるのですが、それを別の文字列に「置換」しようとすると「一致するデータが見つかりません」のメッセージが出て置換できません。「一致するデータ」がちゃんと存在するにもかかわらずにです。  ところが「すべて置換」にするとちゃんとすべてその文字列が指定の文字列に置換出来てしまいます。  即ち、ちゃんと置換すべき文字列が存在するにもかかわらず「置換」だけが実行されないのです。  これってどうゆうわけでしょうか?  私としては、「すべて置換」ではなく、一つ一つ確認しながら文字列の置換を行いたいのですが・・・私のやり方が悪いのでしょうか?  尚、ここで言う「文字列」とは狭い意味のそれではなく、数値・記号を含む全ての文字と言う意味です。

  • word2003の置換について

    以前、複数のword2003の複数のファイルに共通してある文字列を一括して置換する方法を質問させていただきましたが、ファイルの数が100近くあり、回答を下さった方には申し訳ありませんでしたが、うまくいきませんでした。 そこで、別の方法を考えましたが、知識がなく方法がわかりません。どなたかご教授ください。 word2003のファイルを開いた際に、自動的に特定の文字列を置換するマクロは組めないでしょうか? もしくは、上書き保存やファイルを閉じる際に自動的に文字列を置換するマクロはできないでしょうか? 欲を言えば、どのファイルを開いても、設定等を必要とせずに自動実行したいです。 特定の文字列というのは、すべてのファイルに共通している言葉1種類のみです。 例えば、「親」を「子」に置換できればいいのです。 よろしくお願いいたします。

  • AccessからOracleへのリンクテーブル時の型情報?

    Access始めたばかりの初心者です。 現在Oracle10gのデータベースのとあるテーブルを をAccess2000でリンクし、クエリで抽出したものをレポートに表示 しようとしています。 そのテーブル上に、 Oracle上ではVARCHAR2(6バイト)の日付データがあります。 例) 200806 これをAccessのクエリ上で変換し、 "6月" と表示させたいのですが、 なぜかうまくいきません。 Oracle上の項目名が YM だとすると、 Replace(Right([YM], 2), "0", "") & "月" こういった関数でうまくいきそうなものですが・・ もしかしてOracleのVARCHAR2はリンクすると文字列型以外の型として 扱われるのでしょうか・・ どなたかご存じの方、ご教授くださいませ。